我是芹菜的新手,我正在尝试了解队列的工作原理。如果我有两个任务,比如任务 1 和任务 2,我将它们放在不同的队列中,在任务 1 上我只使用一个工作线程,而在任务 2 上我使用多个工作,任务 1 是否一次只运行一个,因为我只有一个工作线程?任务 2 的运行次数会和我有工作人员一样多吗?我的理解正确吗?
你很接近。您可以将任务分配到特定队列,并将工作线程配置为仅侦听特定队列,并单独扩展侦听每个队列的工作线程数量。通常,更多的工作线程意味着可以同时执行更多的任务。
但是,仅将一个工作线程分配给特定队列/任务并不能保证该任务一次只执行一个。
默认情况下,工作线程已启用并发,这意味着单个工作线程可以利用多个进程并发执行任务。此外,还有其他工作设置需要考虑,例如预取和早期确认。
如果要确保一次只能执行一个任务,则不应依赖(缺乏)工作进程的可用性。相反,像文档中描述的那样,确保一次执行一个任务的锁定机制将是一种推荐的方法。
task2
执行的次数不会像该队列中的工作线程那样多,则此任务将分配给该时刻可用的工作线程之一。