一、簡介
celery是異步任務(wù)隊列框架,支持實時處理消息任務(wù),和定時處理消息任務(wù).
架構(gòu)圖:
創(chuàng)新互聯(lián)成都企業(yè)網(wǎng)站建設(shè)服務(wù),提供成都網(wǎng)站設(shè)計、網(wǎng)站建設(shè)網(wǎng)站開發(fā),網(wǎng)站定制,建網(wǎng)站,網(wǎng)站搭建,網(wǎng)站設(shè)計,自適應(yīng)網(wǎng)站建設(shè),網(wǎng)頁設(shè)計師打造企業(yè)風(fēng)格網(wǎng)站,提供周到的售前咨詢和貼心的售后服務(wù)。歡迎咨詢做網(wǎng)站需要多少錢:13518219792
組件說明:
producer: 調(diào)用celery api,函數(shù),裝飾器,生成task,放入消息隊列的都是生產(chǎn)者
celery beat: 任務(wù)調(diào)度器,beat進(jìn)程讀取配置文件,周期性的將配置文件中需要執(zhí)行的任務(wù)放入隊列
broker: 消息代理中間件,task任務(wù)存入隊列,供worker取出執(zhí)行
worker: 執(zhí)行任務(wù)的消費者,可以開啟多個線程執(zhí)行
backend: 任務(wù)處理完后保存狀態(tài)信息和結(jié)果,以供查詢
二、簡單使用
項目結(jié)構(gòu)
app_test.py實例化celery
from celery import Celery
app = Celery('celerydemo',include=['celerydemo.tasks'])
app.config_from_object('celerydemo.celeryconfig')
if name== 'main':
app.start()
創(chuàng)建任務(wù)tasks.py
import time
from celerydemo.app_test import app
@app.task
def add(x,y):
time.sleep(1)
return x+y
添加配置文件celeryconfig.py
BROKER_URL = 'redis://:123456@127.0.0.1:6379/0'
CELERY_RESULT_BACKEND = 'redis://:123456@127.0.0.1:6379/0'
CELERY_TASK_SERIALIZER = 'msgpack'
CELERY_RESULT_SERIALIZER = 'json'
CELERY_TASK_RESULT_EXPIRES = 60 60 24
CELERY_ACCEPT_CONTENT = ['json', 'msgpack']
創(chuàng)建worker消費者線程
celery -A celerydemo.app_test worker -l info
調(diào)用任務(wù)exec.py 放入隊列,并輸出結(jié)果
from celerydemo.tasks import add
import time
t1 = time.time()
#調(diào)用delay將任務(wù)插入broker隊列
r1 = add.delay(1,2)
r2 = add.delay(2,2)
r3 = add.delay(3,2)
r4 = add.delay(4,2)
r5 = add.delay(5,2)
r_list = [r1,r2,r3,r4,r5]
for r in r_list:
while not r.ready():
pass
print(r.result)
t2 = time.time()
print('共耗時: %s' % str(t2-t1))
網(wǎng)站標(biāo)題:celery簡單使用
地址分享:http://muchs.cn/article2/ishgic.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、軟件開發(fā)、靜態(tài)網(wǎng)站、全網(wǎng)營銷推廣、搜索引擎優(yōu)化、網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)