芹菜分发队列和工人

2024-04-20 06:54:14 发布

您现在位置:Python中文网/ 问答频道 /正文

我对芹菜还不熟悉,我正试图了解排队的原理。如果我有两个任务,比如task1和task2,并将它们放在不同的队列中,在task1上我只使用一个worker,在task2上我使用多个worker,那么task1会一次只运行一个,因为我只有一个worker?task2的运行次数会和我的工人一样多吗?我的理解正确吗?在


Tags: 队列次数排队芹菜原理worker工人task1
2条回答

task2的执行次数不会与队列中的worker相同,此任务将分发给届时可用的工作线程之一。在

你很接近。您可以将任务分配到特定队列,并将worker配置为仅侦听特定队列,并可以独立扩展侦听每个队列的worker的数量。一般来说,更多的工人意味着可以同时执行更多的任务。在

但是,仅为特定队列/任务分配一个worker并不保证一次只能执行一个worker。
默认情况下,worker启用了并发,这意味着单个worker可以利用多个进程并发执行任务。此外,还需要考虑其他工作设置,如预取和早期确认。在

如果要确保一个任务一次只能执行一个任务,则不应依赖于(缺少)工作进程的可用性。相反,文档ensuring a task is executed one at a time中描述的锁定机制将是一种推荐的方法。在

相关问题 更多 >