指定队列
在启动celery任务时,加上命令-Q 队列名
即可指定该任务监听的队列.
但是仅仅这样还是无法让任务的发送方知道该任务要发送到哪个队列(默认队列是发送到名为celery
的队列中)
让发送方指定任务发送的队列有如下方式:
- 配置文件
celery配置文件中有task_routes参数,参数格式如下
- 配置文件
{
"manage.add":{
"queue":"mathematical",
"routing_key":"test"
}
}
其中manage.add
为规格名称,该任务会把manage.add
方法的请求发送到此队列中.
queue
队列名,需要与-Q
指定的名称一致
routing_key
路由规则,可省略(作用还没搞懂).
-
send_task
函数处
在发送异步请求的send_task
函数处,可以通过queue
函数指定队列名称
指定任务名称
在celery中若未指定名称,其调用方法名为其在项目中的路径,例如model.task.func()
,这样调用比较麻烦,其可以通过celery_app.task(name='xxx')
的方式修改其名称,例如
@celery_app.task(name='new_add')
def add():
return 1+2
网友评论