我有多个工作进程从同一个multiprocessing.queue(). 每个工作进程只读取属于自己的内容,其他内容必须保持不变。所以基本上工作进程必须首先检查队列内容然后决定是否弹出一个项目。
有没有办法做到这一点multiprocessing.queue?
您可以随时放回不需要的消息(如果订单不是问题)
def get_my_job():
while True:
job = q.get()
if job == 'mine':
return job
q.put(job)
time.sleep(random()/2) #preventing deadlocks...
Run Code Online (Sandbox Code Playgroud)
如果顺序很重要,您可以使用多个队列,因此每种消息类型都将位于其自己的队列中
queues = { 'queue4worker_type1': Queue(),
'queue4worker_type2': Queue(),
}
#each worker can now consume only messages for its wanted types ...
Run Code Online (Sandbox Code Playgroud)