2024-04-20 06:54:14 发布
网友
我对芹菜还不熟悉,我正试图了解排队的原理。如果我有两个任务,比如task1和task2,并将它们放在不同的队列中,在task1上我只使用一个worker,在task2上我使用多个worker,那么task1会一次只运行一个,因为我只有一个worker?task2的运行次数会和我的工人一样多吗?我的理解正确吗?在
task2的执行次数不会与队列中的worker相同,此任务将分发给届时可用的工作线程之一。在
task2
你很接近。您可以将任务分配到特定队列,并将worker配置为仅侦听特定队列,并可以独立扩展侦听每个队列的worker的数量。一般来说,更多的工人意味着可以同时执行更多的任务。在
但是,仅为特定队列/任务分配一个worker并不保证一次只能执行一个worker。 默认情况下,worker启用了并发,这意味着单个worker可以利用多个进程并发执行任务。此外,还需要考虑其他工作设置,如预取和早期确认。在
如果要确保一个任务一次只能执行一个任务,则不应依赖于(缺少)工作进程的可用性。相反,文档ensuring a task is executed one at a time中描述的锁定机制将是一种推荐的方法。在
task2
的执行次数不会与队列中的worker相同,此任务将分发给届时可用的工作线程之一。在你很接近。您可以将任务分配到特定队列,并将worker配置为仅侦听特定队列,并可以独立扩展侦听每个队列的worker的数量。一般来说,更多的工人意味着可以同时执行更多的任务。在
但是,仅为特定队列/任务分配一个worker并不保证一次只能执行一个worker。
默认情况下,worker启用了并发,这意味着单个worker可以利用多个进程并发执行任务。此外,还需要考虑其他工作设置,如预取和早期确认。在
如果要确保一个任务一次只能执行一个任务,则不应依赖于(缺少)工作进程的可用性。相反,文档ensuring a task is executed one at a time中描述的锁定机制将是一种推荐的方法。在
相关问题 更多 >
编程相关推荐