Celery 使用(一)
Celery 使用(一)
架構(gòu)
如下圖:
整體的流程,任務(wù)發(fā)布者或者是任務(wù)調(diào)度,將任務(wù)發(fā)送到消息代理中,接著消息代理將任務(wù)發(fā)送給消費者來執(zhí)行,其執(zhí)行完后將結(jié)果保存到backend中。
使用
先創(chuàng)建Celery實例和相關(guān)的任務(wù),這里配置Celery可以通過創(chuàng)建一個配置文件,然后通過app.config_from_object('proj.celeryconfig')加載即可。
task.py如下
from celery import Celery app = Celery('tasks', backend='amqp', broker='amqp://guest@localhost:5672//') @app.task def add(x, y):return x + y接下來,創(chuàng)建相關(guān)的任務(wù)發(fā)布者,run_task.py如下
from task2 import add result = add.delay(1,1) import time while not result.ready():print('not yet ready')time.sleep(1) print(result.get())然后在項目目錄中,通過命令執(zhí)行Celery,命令如下:
celery -A task2.app worker --loglevel=info如果看到命令行里顯示該實例的所有任務(wù)說明執(zhí)行成功,最后再開一個進程執(zhí)行任務(wù),接著就會看到命令行中的提示信息,說明消費者執(zhí)行成功,并且將結(jié)果保存到backend中。
一個簡單的用例就結(jié)束了。
疑惑
之前有一個疑惑的點在于,既然RabbitMQ可以實現(xiàn)任務(wù)隊列,要Celery有何用呢?
從我搜索到的知識來看,有以下幾點:
轉(zhuǎn)載于:https://www.cnblogs.com/George1994/p/7385335.html
總結(jié)
以上是生活随笔為你收集整理的Celery 使用(一)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 猫猫学iOS之小知识iOS启动动画_La
- 下一篇: 【shell】shuf命令,随机排序