我有多个工作进程从同一个multiprocessing.queue()读取.每个工作进程只读取属于自己的内容,并且必须保持其他内容不变.所以基本上工作进程必须首先检查队列内容然后决定是否弹出一个项目.
有没有办法用multiprocessing.queue做到这一点?
最佳答案 你可以随时放回你不需要的信息(如果订单不是问题)
def get_my_job():
while True:
job = q.get()
if job != 'not 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 ...