简短的问题:是否有可能有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
可以进行通用工作的实例