31-Celery-定时任务

发布时间 2023-04-03 09:41:34作者: 测试圈的彭于晏

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