Python 芹菜:限制任务的队列
我有多个队列,假设它们是Python 芹菜:限制任务的队列,python,celery,amqp,Python,Celery,Amqp,我有多个队列,假设它们是Q1和Q2 我还有一些任务,其中之一是T1 如何配置芹菜,使员工只从Q1中获取T1,而从不从Q2中接受T1?您可以通过芹菜实现这一点。将不同类型的任务注册到不同的应用程序,并仅在这些应用程序上运行worker(例如,请参阅芹菜worker命令上的-A myapp设置) 或者,如果您采用更简单的使用方法,也可能会取得成功。因此,如果您仅将T1发送到名为queue1的队列,将T2发送到queue2,则可以在芹菜工人上使用选项-Q queue1,以便它仅从queue1接收任务
Q1
和Q2
我还有一些任务,其中之一是T1
如何配置芹菜,使员工只从
Q1
中获取T1
,而从不从Q2
中接受T1
?您可以通过芹菜实现这一点。将不同类型的任务注册到不同的应用程序,并仅在这些应用程序上运行worker(例如,请参阅芹菜worker命令上的-A myapp
设置)
或者,如果您采用更简单的使用方法,也可能会取得成功。因此,如果您仅将T1发送到名为queue1的队列,将T2发送到queue2,则可以在芹菜工人上使用选项
-Q queue1
,以便它仅从queue1接收任务 你可以用芹菜来达到这个目的。将不同类型的任务注册到不同的应用程序,并仅在这些应用程序上运行worker(例如,请参阅芹菜worker命令上的-A myapp
设置)
或者,如果您采用更简单的使用方法,也可能会取得成功。因此,如果您仅将T1发送到名为queue1的队列,将T2发送到queue2,则可以在芹菜工人上使用选项
-Q queue1
,以便它仅从queue1接收任务 启动worker时,可以为他指定一个队列
celery -A proj worker -Q queue_name
启动worker时,可以为其指定队列
celery -A proj worker -Q queue_name
但是,如果我的工作人员收听
Q1
并且只希望那里有T1
,那么其中一个客户仍然可以将T2
发送到Q1
,芹菜仍然会愉快地接受它,因为T2
是一项注册任务。我错了吗?恐怕唯一的办法就是使用不同的应用程序。到目前为止,在我的应用程序中尝试使用多个芹菜.py
运行芹菜+Django时遇到了一些问题,但我想这是可以管理的。@Art是的,这就是为什么我说如果你设法只将T1发送到名为queue1
的队列中。但是如果我的工作人员收听Q1
并且只希望T1
,其中一个客户端仍然可以将T2
发送到Q1
中,芹菜仍然会愉快地接受它,因为T2
是一个已注册的任务。我错了吗?恐怕唯一的办法就是使用不同的应用程序。到目前为止,在我的应用程序中使用多个Celery.py
运行芹菜+Django时遇到了一些问题,但我想这是可以管理的。@Art是的,这就是为什么我说,如果您只将T1发送到名为queue1的队列
。