Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/321.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 芹菜:限制任务的队列_Python_Celery_Amqp - Fatal编程技术网

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的队列