我想知道是否可以为队列设置不同的预取乘法器。
我有两个队列,一个有非常短的运行任务,另一个稍微长一些。较短任务的队列需要优先于其他任务。
为了确保排序工作可靠,必须在芹菜配置中设置:
task_acks_late = True
worker_prefetch_multiplier = 1
然而,这确实损害了快速任务队列的性能。如果工作人员从快速任务队列中获取,那么worker_prefetch_multiplier
是4,如果工人是从慢任务队列中获取的,那么是否可以进行配置?worker_prefetch_multiplier
是1吗?
发布于 2021-03-08 08:57:27
我不确定是否可以自芹菜文件似乎为每个工人设定了这些限制。以来为每个队列定义不同的预取限制。
但是,我们通过为每个队列启动一个不同的工作人员来解决这个问题。您可以为每个员工定义不同的预取限制--如果一个工作人员只使用一个队列,那么您还可以定义不同的预取限制以及每个队列的工作者并发。这也有一个额外的好处,即长期运行的任务不会阻止短期运行任务的工作人员处理时间。如果您有意使用芹菜批来进一步加快短期运行任务的处理速度,那么将队列分离到不同的工作人员就变得更加重要了,因为您希望为该工作人员定义相当高的预取限制(注意:如果预取限制为0,并且队列非常满,那么最终内存将耗尽)。
在我们的例子中,我们是在一个连成一体的环境中运行我们的员工。这使我们甚至能够为每个工作人员/队列定义独立的资源分配(内存/ cpu)。
https://stackoverflow.com/questions/66526540
复制相似问题