1.选择broker
可以选择的broker很多,一般选择rabbitmq。本身就是消息中间件。rabbitmq的安装略。
2.安装celery
3.创建tasks
创建tasks.py
1 2 3 4 5 6 7
| from celery import Celery app = Celery('tasks', broker='amqp://guest@localhost//') @app.task def add(x, y): return x + y
|
4.运行celery worker
1
| $ celery -A tasks worker --loglevel=info
|
5.调用tasks
很简单,import进来,然后调用delay函数即可。
celery worker进程会收到这个消息并执行他
1 2
| Received task: proj.tasks.add[9e9ee3e8-1350-4858-9fbb-0fd62779c3e1] Task proj.tasks.add[9e9ee3e8-1350-4858-9fbb-0fd62779c3e1] succeeded in 0.00637572002597s: 3
|
注意,这里并没有记录结果。
6.保存结果
celery里面做法也很简单,初始化app的时候加个backend就可以了。这里已redis为例:
1
| app = Celery('tasks', backend='redis://localhost', broker='amqp://')
|
1 2
| result = add.delay(4, 4) ret = result.get(timeout=1)
|