【发布时间】:2012-07-15 16:10:00
【问题描述】:
简短的问题:是否有可能拥有N 工作进程和balancer 进程来查找此时什么都不做的工作人员并将UnitOfWork 传递给它?
长问题: 想象一下这样的类,女巫将被子类化以完成某些任务:
class UnitOfWork:
def __init__(self, **some_starting_parameters):
pass
def init(self):
# open connections, etc.
def run(self):
# do the job
启动平衡器和工作进程:
balancer = LoadBalancer()
workers = balancer.spawn_workers(10)
部署工作(平衡器应该找到一个惰性工作者,并将任务传递给它,否则如果每个工作者都忙,则将 UOW 添加到队列中并等待空闲工作者):
balancer.work(UnitOfWork(some=parameters))
# internally, find free worker, pass UOW, ouw.init() + ouw.run()
这可能吗(还是很疯狂)?
PS 我熟悉 multiprocessing Process 类和进程池,但是:
- 每个
Process实例都会启动一个进程(是的 :))- 我想要固定的工人数量 - 我想要
Process可以使通用工作的实例
【问题讨论】:
标签: python performance parallel-processing multiprocessing