问题描述
我处于单一生产者/多个消费者的场景中。考虑到每个作业都是独立的,消费者之间没有通信。
-
为每个消费者创建不同的队列是个好主意吗? 这样,生产者以循环方式在每个队列中添加作业,并且访问单个队列没有延迟。
-
还是尽可能减少队列数量更好?
-
在单个队列和大量消费者(例如 20 个或更多)的情况下,由于对队列的同步访问而导致的延迟是否相关?
我使用 Python 3.7 和多线程/多处理来创建多个消费者。每个消费者都需要运行一个可执行文件并执行一些 I/O 操作(写入、移动或复制文件)。我目前使用多处理和单队列开发了它,但我正在考虑改变多线程和多队列的方法。
单队列
Consumer
/
/ ..
Producer --> [ Queue ] -- Consumer
\ ..
\
Consumer
多队列
-> [ Queue ] -- Consumer
/
/ ..
Producer ----- -> [ Queue ] -- Consumer
\ ..
\
-> [ Queue ] -- Consumer
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)