0
我有兩臺機器,現在孩子正在做一段時間1:語句來不斷檢查包含作業的BaseManager。這使得它很健談。有一個更好的方法嗎?在多處理器上添加事件監聽器。管理器
你可以在經理上創建一個事件,說:「嘿,我有一個新的工作的孩子!」就像在C#中一樣,你可以使用+ =和 - =語法連接一個新事件?
很簡單的孩子是這樣的:
class QueueManager(BaseManager):
""" multiprocessing queue manager object """
pass
if __name__ == "__main__":
# get the get function
QueueManager.register('get_queue')
while 1:
queue = m.get_queue()
if queue.empty() == False and \
queue.qsize() > 0:
job_directory = queue.get()
print job_directory
所有我做它從隊列中拉出作業文件夾。我想要一個更好的方式來做到這一點。事件可以通過連線完成嗎?
謝謝
所以推薦的模式是總是使用while模式? – 2014-09-02 23:26:27
@ josh1234是的。因爲我們現在直接去'queue.get()',使用'while 1:'模式不是很「健談」。循環將在'get()'調用中阻塞,直到'queue'中實際存在一個消耗的項目。然後它會處理它,然後回到阻塞狀態。 – dano 2014-09-02 23:28:16