celery 定时任务demo
tasks.py
from celery import Celery app = Celery('tasks', broker='redis://localhost:6379/0', backend='redis://localhost:6379/0') app.conf.update( # 配置所在时区 CELERY_TIMEZONE='Asia/Shanghai', CELERY_ENABLE_UTC=True, # 官网推荐消息序列化方式为json CELERY_ACCEPT_CONTENT=['json'], CELERY_TASK_SERIALIZER='json', CELERY_RESULT_SERIALIZER='json', # 配置定时任务 CELERYBEAT_SCHEDULE={ 'my_task': { 'task': 'tasks.add', # tasks.py 模块下的方法 'schedule': 60, # 每个60s运行一次 'args': (23,12), } } ) @app.task def add(x, y): return x + y
启动 worker: celery -A tasks worker -l info # 参数:
-A
指定的是app(即Celery实例)所在的文件模块,我们的app是放在tasks.py
中,所以这里是 tasks
;worker表示当前以worke
r的方式运行,比如运行定时任务就不用指定worker
这个关键字; -l info
表示该worker节点的日志等级是info
启动定时任务 celery beat -A tasks -l info # 在执行这两条命令之前redis服务需要先启动