跨流程分散任务。
buckshot的Python项目详细描述
buckshot库包含设计用于帮助 开发人员可以快速创建分布式应用程序。
安装
安装buckshot的最简单方法是通过pip:
$ pip install buckshot
用法
目前,有两种方法可以利用buckshot来分发工作 跨进程:@distributedecorator和with distributed(...) 上下文管理器。
下面的示例演示如何分配计算工作 跨进程的许多谐波和值。
连续进近
import fractions def harmonic_sum(x): F = fractions.Fraction return sum(F(1, d) for d in xrange(1, x + 1)) for value in range(1, 100): result = harmonic_sum(value) print result
使用@distribute
import fractions from buckshot import distribute @distribute(processes=4) def harmonic_sum(x): F = fractions.Fraction return sum(F(1, d) for d in xrange(1, x + 1)) for result in harmonic_sum(range(1, 100)): # Pass in values list. print result
使用with distributed(...)
import fractions from buckshot import distributed def harmonic_sum(x): F = fractions.Fraction return sum(F(1, d) for d in xrange(1, x + 1)) with distributed(harmonic_sum, processes=4) as distributed_harmonic_sum: for result in distributed_harmonic_sum(range(1, 100)): print result在输入耗尽和/或上下文退出时,所有进程都被销毁。
已知问题
- 函数输入必须是可选取的。
- 函数输出必须是可选取的。
- 如果在外部终止子进程,buckshot将永远阻止等待 为了结果。
- 这会在引擎盖下使用os.fork(),因此可能会很快耗尽 记忆。
许可证
有关详细信息,请阅读许可证文件。