在setting中配置队列和定时任务
from kombu import Queue
from datetime import timedelta
CELERY_DEFAULT_QUEUE = 'worker_queue'
CELERY_QUEUES = (
Queue("beat_queue", routing_key="beat_queue"),
Queue("worker_queue", routing_key="worker_queue"),
)
CELERYBEAT_SCHEDULE = {
'task2':{
'task':'course.tasks.task2',
'schedule':timedelta(seconds=5),
'args':(99,3),
'options':{
'queue':'beat_tasks'
}
}
}
启动beat:
python manage.py celery beat -l INFO
python manage.py celery worker -l INFO -Q beat_tasks
一条命令启动worker和beat
python manage.py celery worker -l INFO -B
注:
在定时任务指定task的时候有两种方法
指定任务的路径
在任务的task上添加个name参数,然后在定时任务的task中指定改name即可
注意,如果指定了name,则必须使用name,而不能使用任务的路径