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表示当前以worker的方式运行,比如运行定时任务就不用指定worker这个关键字; -l info表示该worker节点的日志等级是info
启动定时任务  celery beat -A tasks -l info  # 在执行这两条命令之前redis服务需要先启动
posted @ 2018-09-17 21:49  PLAY_JOY  阅读(537)  评论(0编辑  收藏  举报