多线程迭代器工作流库。
quenouille的Python项目详细描述
昆努耶
python的多线程迭代器工作流库。
安装
您可以使用pip使用以下命令安装quenouille 函数以多线程方式惰性地使用迭代器并将所需函数应用于生成的项上。函数将按与提供的迭代器一致的顺序生成结果。 此外,如果您需要确保有限数量的线程可以对同一组执行tak,例如在获取url时的域名,则可以调整有关组并行性的选项:您可以给一个函数从当前tak中提取组,您可以调整在同一组上工作的线程的最大数目,最后您可以编辑组的缓冲区大小,以便让函数将更多的值加载到内存中,以期在不需要等待的情况下找到下一个可以处理的值。 如果您不关心输出顺序并希望SnapPier性能,库还会导出 参数 事件 函数以多线程方式惰性地使用迭代器并将所需函数应用于生成的项上。该函数将根据线程完成情况以任意顺序生成结果。 此外,如果您需要确保有限数量的线程可以对同一组执行tak,例如在获取url时的域名,则可以调整有关组并行性的选项:您可以给一个函数从当前tak中提取组,您可以调整在同一组上工作的线程的最大数目,最后您可以编辑组的缓冲区大小,让函数将更多的值加载到内存中,希望无需等待即可找到下一个可以处理的对象。 如果输出顺序对您很重要,则库还导出 参数 事件pip install quenouille
用法
IMAP
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)
无
]:获取由提供的iterable生成的单个项并返回其组的函数。infinity
]:可以同时在同一组上工作的最大线程数。默认为无限制。此选项要求您将函数作为组
参数。1
]:在等待其他相关线程可用之前,将从iterable加载到内存中的最大值数。0
]:限制同一组上两个任务之间的等待时间(秒)。0
]:从0
到给定值之间的附加随机限制时间。有助于模拟不稳定的行为。无
]:用事件名称和相关项调用某些事件的函数。IMAP_无序
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)
无
]:获取由提供的iterable生成的单个项并返回其组的函数。infinity
]:可以同时在同一组上工作的最大线程数。默认为无限制。此选项要求您将函数作为组
参数。1
]:在等待其他相关线程可用之前,将从iterable加载到内存中的最大值数。0
]:限制同一组上两个任务之间的等待时间(秒)。0
]:从0
到给定值之间的附加随机限制时间。有助于模拟不稳定的行为。无
]:用事件名称和相关项调用某些事件的函数。推荐PyPI第三方库