我有两台机器,现在孩子正在做一段时间1:语句来不断检查保存作业的BaseManager。这让它很健谈。有更好的方法吗?
你可以在经理上创建一个事件,说'&34;嘿,我有一个新工作的孩子!"就像在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
所有我都在从队列中提取作业文件夹。我想要一个更好的方法来做到这一点。可以将事件连接起来吗?
谢谢
答案 0 :(得分:2)
这里不需要繁忙的循环。只需在while循环之外调用get_queue
一次,然后在循环内直接使用queue.get()
:
class QueueManager(BaseManager):
""" multiprocessing queue manager object """
pass
if __name__ == "__main__":
QueueManager.register('get_queue')
queue = m.get_queue()
while 1:
job_directory = queue.get()
print job_directory
管理员正在将Proxy
返回到您在服务器上创建的Queue.Queue()
对象,而不是实际Queue.Queue
对象的副本。您在Proxy
上执行的每项操作都会传递到服务器上Queue.Queue
的实例,因此您可以像使用普通Queue
一样使用它。从客户端的角度来看,Queue
子类返回的共享BaseManager
实例与普通的Queue.Queue
没有区别。