在一些Django项目中有以下任务:
@app.task
def task1():
# processing
@app.task
def task2():
# processing
@app.task
def long_task():
# very long processing
settings.py
:
default_exchange = Exchange('default', type='direct')
CELERY_QUEUES = (
Queue(
name='celery', # should I define default queue?
exchange=default_exchange
),
Queue(
name='long',
exchange=default_exchange
)
)
CELERY_ROUTES = {
'long_task': {
'queue': 'long'
},
}
有了这个,所有的任务都是这样运行的:
long.apply_async()
正在发送到默认队列。
如何将它们发送到不同的队列?
在decorator:中定义队列名称
@app.task(queue='long')
def long_task():
# very long processing
并在一个单独的吊舱中运行工人。