实现一个基于优先级队列的获取系统。

pqueue_fetcher的Python项目详细描述


实现一个基于优先级队列的获取系统。

可以通过传递fetch函数来使用Fetcher类 它接受任意类型的位置。

然后可以通过fetcher的add方法添加位置。

它旨在通过中断对^{tt2}的超时调用来管理取数。$ 通过重新输入失败的回迁到队列中 优先权改变的。

获取失败,可能是由于超时 或者通过被传递的success函数过滤掉, 被路由回源队列 它们的优先级被另一个传递的函数更改。

后续的获取将传递给results队列。

fetch函数可以是任何接受单个参数的函数: 因此,它可能执行的任务的范围是相对不受限制的。

Fetcher构造函数还接受一个数字的threadcount参数, 它将决定要运行的并发fetch函数的数量。

每个fetch调用都将在新生成的线程中进行。 这是一种相对简单的允许中断的方法 使用cPyThreadState_SetAsyncExc函数的调用。

便携性

因为它使用了cpython的底层c api, 此模块不可移植到其他python实现。

问题

由于python的线程功能的缺陷 作者一直无法解决的问题, 如果I/O上传递的fetch块可能会导致问题。

试图解决这些问题; 有关详细信息,请参见reactor函数。

尽管进行了这种尝试,代码仍然明显粗略。 想想你被警告了。

相关的注意事项是方法test.FetcherTester.test_incorrect_fission。 此测试强调了I/O块解决方案的脆弱性。 有关详细信息,请参阅该方法的文档。

许可证

pqueue_fetcher根据mit许可证获得许可。

许可证详细信息在文件COPYING中提供。

状态

尽管模块通过了相当简单的测试套件, 这并不能保证可用性。

特别是,这个模块还没有被使用 除了通过它的测试套件之外的任何事情。

开发人员寻找一个健壮的多线程文档检索解决方案 最好去别处看看, 可能从twisted框架开始。

pqueue_fetcher已执行 更多关于多线程和队列使用的练习 而不是为了创建一个可用的代码体。

它主要作为这些技术的一个例子出版, 为了突出一些困难 在编写线程化的python代码时。

模块也缺少一些明显的功能, 例如设置重试限制的能力。

应该在pqueue_fetcher上继续工作, 允许超时逻辑可能更有用 由fetch函数处理。

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

推荐PyPI第三方库


热门话题
java如何复制二维字符串数组?   java Realworld参数优化   输入创建一个Java程序,读取。txt并标识三角形边长   java Apache HttpClient上传后文件无法与MultipartEntityBuilder上传一起使用   java如何从单独的类文件中随机选择两个枚举值   Java获取两个正则表达式之间所有字符串的最佳方法?   java如何将按钮链接到微调器?   java改造2.0:如何映射不同类型的对象   java如何检查Antlr3中的数字范围?   java使用JNDI查找EJB Bean   java构造函数字符串、字符串、int、int、Optional<>在spring boot中未定义   java如何使用jruby(使用jetty运行)创建servlet?   JavaFX:为什么在背景改变之前我必须按下按钮几次?   java可以为违反映射契约的映射生成重复的JSON对象属性名吗?   JavaJSOUP从网站获取某些属性   Eclipse:如何使java文件夹显示为树?   如何在Java中从Matcher获取多个正则表达式组?   构造函数中带有参数的lambda Java 8供应商   java是否可以在ExtJS 3.2中对日期进行自定义排序