next step with celery - 18965050/python-celery GitHub Wiki

celery通常的目录结构为:

proj/__init__.py
    /celery.py
    /tasks.py
# proj/celery.py

from __future__ import absolute_import

from celery import Celery

app = Celery('proj',
             broker='redis://[email protected]:6379/8',
             backend='redis://[email protected]:6379/9',
             include=['proj.tasks'])

# Optional configuration, see the application user guide.
app.conf.update(
    CELERY_TASK_RESULT_EXPIRES=3600,
)

if __name__ == '__main__':
    app.start()
# proj/tasks.py

from __future__ import absolute_import

from .celery import app



@app.task
def add(x, y):
    return x + y


@app.task
def mul(x, y):
    return x * y


@app.task
def xsum(numbers):
    return sum(numbers)

启动worker命令为:

celery -A proj worker -l info

启动后, 会显示如下的信息: worker-start-info

  • broker: broker地址, 也可以在命令行中通过-b修改
  • concurreny: 任务预派生的进程数. 默认值是机器的CPU核数. 也可通过-c 修改
  • events: 是否运行celery在任务触发时发送监控消息(events), 这些监控消息可被一些监控程序(比如celery events)使用.
  • queues: 任务队列.

调用方式:

add.delay(2, 2)

add.apply_async((2, 2))