1. settings.py配置
# 定时任务
from datetime import timedelta
CELERYBEAT_SCHEDULE = {
'schedule-test': {
'task': 'App02.tasks.hello_world', # app的名字.tasks.函数名
'schedule': timedelta(seconds=10), # 每隔多久执行一次: 秒
'args': (6,) # 函数的参数在这个里面传
}
}
# 计划任务时间
from celery.schedules import crontab
CELERYBEAT_SCHEDULE = {
'every-ten-second-run-my_task': {
'task': 'App02.tasks.do', # app的名字.tasks.函数名
'schedule': crontab(minute="44", hour="13"), # 每天15点01分执行一次
'args': (2,) # 函数的参数在这个里面传,没有参数的话注释掉
}
}
2. 启动
celery -A new(主项目名) beat -l info
3. 注意点
'''
我们启动定时任务服务时 也要先开启worker
如果只开启定时服务没有开启worker服务 那么定时任务会被放入任务队列,
但是由于没有干活儿的worker 那么任务是不会被执行,
当worker服务被启动后会立刻去任务队列领任务并执行
你的任务一定要确保是可以正常执行的
'''
# 启动worker
celery -A new worker -l info --pool=solo
# 启动定时任务
celery -A new beat -l info