可组合的python执行器和未来库

more-executors的Python项目详细描述


更多执行者

Build StatusMaintainabilityTest Coverage

此库用于 ^{} 模块。它包括一个Executor实现的集合,以便 扩展Future对象的行为。

功能

  • 隐含重试的未来
  • 执行器关闭时隐式取消的期货
  • 超时后隐式取消的期货
  • 具有转换输出值的未来(同步和异步)
  • 由调用方提供的轮询函数解决的未来问题
  • 限制一次运行的期货数量
  • 同步执行器
  • asyncio
  • 桥接concurrent.futures
  • 创建执行器的便利api

有关用法的详细信息,请参见API documentation

示例

这个例子结合了map和retry执行器来为 并发运行的http请求,解码 以后并在出错时重试。

importrequestsfromconcurrent.futuresimportas_completedfrommore_executorsimportExecutorsdefget_json(response):response.raise_for_status()return(response.url,response.json())deffetch_urls(urls):# Configure an executor:# - run up to 4 requests concurrently, in separate threads# - run get_json on each response# - retry up to several minutes on any errorsexecutor=Executors.\
        thread_pool(max_workers=4).\
        with_map(get_json).\
        with_retry()# Submit requests for each given URLfutures=[executor.submit(requests.get,url)forurlinurls]# Futures API works as normal; we can block on the completed# futures and map/retry happens implicitlyforfutureinas_completed(futures):(url,data)=future.result()do_something(url,data)

开发

virtualenvpip可用于从本地安装此项目 来源:

virtualenv ~/dev/python
. ~/dev/python/bin/activate

git clone https://github.com/rohanpm/more-executors
cd more-executors

pip install --editable .

可以使用pytest运行自动测试:

pip install -r test-requirements.txt
py.test

针对https://github.com/rohanpm/more-executors提交拉取请求。

许可证

此程序是免费软件:您可以重新分发和/或修改 根据由 自由软件基金会,或者许可证的第3版,或者 (由您选择)任何更高版本。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java无法打开摄像头,当点击摄像头图标时,toast消息显示“无法创建图像文件”   用java压缩/压缩图像文件   访问drools guvnor的java代码   java数据关联使用hibernate二级缓存和hazelcast   java如何全局禁用默认上下文菜单   利用系数在Java中对信号进行matlab滤波   java如何在adf中初始化ViewObject的一行?   IntelliJ的UI设计器中的java奇怪表单行为   java如何像torrents一样通过全球互联网发送数据?   用于循环检查播放器位置的java   使用Struts 2输出时出现java JSON异常错误   java primefaces效果不起作用   java卡洗牌(SPOJ/Interviewstreet)   java你能用方法创建一个类的对象吗?   java如何从平面树结构中查找所有子体   java如何让用户在使用cdrecord时指定Windows驱动器号?   玩。使用记事本的java mp3文件   java动态参数重构   使用java在REST web服务中获取http请求的内容