0%

celery学习笔记

安装

  • 用pip安装celery
1
pip install celery
  • 安装redis来当broker

第一个例子

  • 新建tasks.py编写任务

    1
    2
    3
    4
    5
    6
    7
    from celery import Celery

    app = Celery('tasks', backend='redis://:password@localhost:6379/0', broker='redis://:password@localhost:6379/0')

    @app.task
    def add(x, y):
    return x + y
  • 启动celery的worker服务

    1
    $ celery -A tasks worker --loglevel=info
  • 调用刚刚编写的任务

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    from tasks import add
    add.delay(4, 4)
    # delay()是apply_async()的简短调用方法,异步调用任务
    result = add.delay(4, 4)
    # ready()返回任务是否完成
    result.ready()
    # 等待任务结果
    result.get(timeout=1)
    # propagate参数设置为False可以覆盖get()里面exception
    result.get(propagate=False)
    # 获取get()里面exception的traceback
    result.traceback