多线程迭代器工作流库。

quenouille的Python项目详细描述


构建状态

昆努耶

python的多线程迭代器工作流库。

安装

您可以使用pip使用以下命令安装quenouille

pip install quenouille

用法

IMAP

函数以多线程方式惰性地使用迭代器并将所需函数应用于生成的项上。函数将按与提供的迭代器一致的顺序生成结果。

此外,如果您需要确保有限数量的线程可以对同一组执行tak,例如在获取url时的域名,则可以调整有关组并行性的选项:您可以给一个函数从当前tak中提取组,您可以调整在同一组上工作的线程的最大数目,最后您可以编辑组的缓冲区大小,以便让函数将更多的值加载到内存中,以期在不需要等待的情况下找到下一个可以处理的值。

如果您不关心输出顺序并希望SnapPier性能,库还会导出imap_unordered方法。

importcsvfromquenouilleimportimap# Example fetching urls from a CSV filewithopen(csv_path,'r')asf:reader=csv.DictReader(f)urls=(line['url']forlineinreader)# The `fetch` function remains to be implemented by the readerforhtmlinimap(urls,fetch,10):# Results will be yielded in lines orderprint(html)

参数

  • iterableiterable:任何python iterable。
  • 函数可调用:用于执行所需任务的函数。函数将从给定iterable生成的任何项作为唯一参数。请注意,由于此函数将在多线程环境中调度,因此它应该是线程安全的。
  • 线程int:要使用的线程数。
  • ?可调用的[]:获取由提供的iterable生成的单个项并返回其组的函数。
  • 组并行性?int[infinity]:可以同时在同一组上工作的最大线程数。默认为无限制。此选项要求您将函数作为参数。
  • 组缓冲区大小?int[1]:在等待其他相关线程可用之前,将从iterable加载到内存中的最大值数。
  • 组节流阀?float[0]:限制同一组上两个任务之间的等待时间(秒)。
  • 群节流熵?float[0]:从0到给定值之间的附加随机限制时间。有助于模拟不稳定的行为。
  • 侦听器可调用[]:用事件名称和相关项调用某些事件的函数。

事件

  • 开始:当给定函数实际开始处理产生的项时发出。

IMAP_无序

函数以多线程方式惰性地使用迭代器并将所需函数应用于生成的项上。该函数将根据线程完成情况以任意顺序生成结果。

此外,如果您需要确保有限数量的线程可以对同一组执行tak,例如在获取url时的域名,则可以调整有关组并行性的选项:您可以给一个函数从当前tak中提取组,您可以调整在同一组上工作的线程的最大数目,最后您可以编辑组的缓冲区大小,让函数将更多的值加载到内存中,希望无需等待即可找到下一个可以处理的对象。

如果输出顺序对您很重要,则库还导出imap方法。

importcsvfromquenouilleimportimap_unordered# Example fetching urls from a CSV filewithopen(csv_path,'r')asf:reader=csv.DictReader(f)urls=(line['url']forlineinreader)# The `fetch` function remains to be implemented by the readerforhtmlinimap_unordered(urls,fetch,10):# Results will be yielded in arbitrary order as soon as tasks completeprint(html)

参数

  • iterableiterable:任何python iterable。
  • 函数可调用:用于执行所需任务的函数。函数将从给定iterable生成的任何项作为唯一参数。请注意,由于此函数将在多线程环境中调度,因此它应该是线程安全的。
  • 线程int:要使用的线程数。
  • ?可调用的[]:获取由提供的iterable生成的单个项并返回其组的函数。
  • 组并行性?int[infinity]:可以同时在同一组上工作的最大线程数。默认为无限制。此选项要求您将函数作为参数。
  • 组缓冲区大小?int[1]:在等待其他相关线程可用之前,将从iterable加载到内存中的最大值数。
  • 组节流阀?float[0]:限制同一组上两个任务之间的等待时间(秒)。
  • 群节流熵?float[0]:从0到给定值之间的附加随机限制时间。有助于模拟不稳定的行为。
  • 侦听器可调用[]:用事件名称和相关项调用某些事件的函数。

事件

  • 开始:当给定函数实际开始处理产生的项时发出。

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

推荐PyPI第三方库


热门话题
将Java中的对象列表序列化为json   在同一Play Framework项目中同时使用Ebean和JPA的java   oop如何在整个Java项目中共享API密钥   java ADT Eclipse SDK故障未找到DDM   扫描程序中变量的递归Java输入值未应用于方法中的变量   java将空格转换为命令行类型的空格   JavaSpring,如何决定客户机应该使用哪个服务?   java致命异常:main(Android标准)   java编译错误是因为类型检查还是三元运算符?   java Sikuli+Webdriver:getting error x.png看起来像一个文件,但在磁盘上找不到。假设是文本   java选择位置。。。。ms sql 2005中需要电气状态   由于OSGi捆绑包依赖性问题,java无法启动RCP应用程序   json java gson fromjson返回非泛型的null   如何将google api访问令牌从java服务器传递到gapi javascript客户端?   java在已排序的LinkedList中添加元素   java ForkJoinPool为什么程序抛出OutOfMemoryError?   java SQUARE无法解析为Processing/Eclipse中的变量   java如何为Sun App Server 8.2设置JNDI