我有多个工作进程从同一个multiprocessing.queue()读取。每个工作进程只读取属于自己的内容,必须保留其他内容不受影响。因此,基本上,工作进程必须首先检查队列内容,然后决定是否弹出一个项。
有什么方法可以用multiprocessing.queue来完成吗?
发布于 2017-03-29 08:55:48
您总是可以将不需要的消息放回(如果订单不是问题,,)
def get_my_job():
while True:
job = q.get()
if job == 'mine':
return job
q.put(job)
time.sleep(random()/2) #preventing deadlocks...如果顺序很重要,您可以使用多个队列,以便每个消息类型的都在自己的队列中。
queues = { 'queue4worker_type1': Queue(),
'queue4worker_type2': Queue(),
}
#each worker can now consume only messages for its wanted types ... https://stackoverflow.com/questions/43088633
复制相似问题