簡短的問題:是否有可能有N
工作進程和balancer
進程,它會發現工人在這個時候什麼也不做,並通過UnitOfWork
它?Python多處理負載平衡器
長的問題: 想像這樣的類,女巫會被繼承某些任務:
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
實例啓動一個進程(是的:)) - 我想工人的固定NUM - 我想
Process
可以製作通用作品的實例
OMG :)更復雜的任務,它具有最簡單的答案:d - 你剛剛意識到,我已經做了在另一個項目這樣的事情,但我沒有從這個角度來看期待... – canni 2012-07-16 19:46:23