日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術(shù)文章
文章詳情頁

Python celery原理及運(yùn)行流程解析

瀏覽:26日期:2022-07-21 13:50:42

celery簡介

celery是一個(gè)基于分布式消息傳輸?shù)漠惒饺蝿?wù)隊(duì)列,它專注于實(shí)時(shí)處理,同時(shí)也支持任務(wù)調(diào)度。它的執(zhí)行單元為任務(wù)(task),利用多線程,如Eventlet,gevent等,它們能被并發(fā)地執(zhí)行在單個(gè)或多個(gè)職程服務(wù)器(worker servers)上。任務(wù)能異步執(zhí)行(后臺運(yùn)行)或同步執(zhí)行(等待任務(wù)完成)。

在生產(chǎn)系統(tǒng)中,celery能夠一天處理上百萬的任務(wù)。它的完整架構(gòu)圖如下:

Python celery原理及運(yùn)行流程解析

組件介紹:

Producer:調(diào)用了Celery提供的API、函數(shù)或者裝飾器而產(chǎn)生任務(wù)并交給任務(wù)隊(duì)列處理的都是任務(wù)生產(chǎn)者。 Celery Beat:任務(wù)調(diào)度器,Beat進(jìn)程會(huì)讀取配置文件的內(nèi)容,周期性地將配置中到期需要執(zhí)行的任務(wù)發(fā)送給任務(wù)隊(duì)列。 Broker:消息代理,又稱消息中間件,接受任務(wù)生產(chǎn)者發(fā)送過來的任務(wù)消息,存進(jìn)隊(duì)列再按序分發(fā)給任務(wù)消費(fèi)方(通常是消息隊(duì)列或者數(shù)據(jù)庫)。Celery目前支持RabbitMQ、Redis、MongoDB、Beanstalk、SQLAlchemy、Zookeeper等作為消息代理,但適用于生產(chǎn)環(huán)境的只有RabbitMQ和Redis, 官方推薦 RabbitMQ。 Celery Worker:執(zhí)行任務(wù)的消費(fèi)者,通常會(huì)在多臺服務(wù)器運(yùn)行多個(gè)消費(fèi)者來提高執(zhí)行效率。 Result Backend:任務(wù)處理完后保存狀態(tài)信息和結(jié)果,以供查詢。Celery默認(rèn)已支持Redis、RabbitMQ、MongoDB、Django ORM、SQLAlchemy等方式。

工作原理

它的基本工作就是管理分配任務(wù)到不同的服務(wù)器,并且取得結(jié)果。至于說服務(wù)器之間是如何進(jìn)行通信的?這個(gè)Celery本身不能解決。所以,RabbitMQ作為一個(gè)消息隊(duì)列管理工具被引入到和Celery集成,負(fù)責(zé)處理服務(wù)器之間的通信任務(wù)。和rabbitmq的關(guān)系只是在于,celery沒有消息存儲功能,他需要介質(zhì),比如rabbitmq、redis、mysql、mongodb 都是可以的。推薦使用rabbitmq,他的速度和可用性都很高。

Celery安裝及使用

1、安裝celery

pip install celery

2、查看完整可用命令選項(xiàng)

celery worker --help

3、創(chuàng)建一個(gè)工程項(xiàng)目project,然后再項(xiàng)目內(nèi)創(chuàng)建一個(gè)celery_tasks異步任務(wù)列表。如圖:

Python celery原理及運(yùn)行流程解析

4、首先是celery_tasks異步任務(wù)主程序main.py,代碼如下:

from celery import Celery# 生成celery應(yīng)用celery_app = Celery('caicai')# 加載配置文件celery_app.config_from_object(’celery_tasks.config’)# 注冊任務(wù)celery_app.autodiscover_tasks([’celery_tasks.email’]) # 注意:傳遞的參數(shù)是任務(wù)列表

分析一下這個(gè)程序:

'from celery import Celery'是導(dǎo)入celery中的Celery類。celery_app celery_app是Celery類的實(shí)例。 把Celery配置存放進(jìn)project/config.py文件,使用celery_app.config_from_object加載配置。 將任務(wù)注冊到應(yīng)用中

5、接著是配置文件config.py,代碼如下:

BROKER_URL = ’redis://localhost:6379/1’ # 使用Redis作為消息代理CELERY_RESULT_BACKEND = ’redis://localhost:6379/0’ # 把任務(wù)結(jié)果存在了Redis# CELERY_TASK_SERIALIZER = ’msgpack’ # 任務(wù)序列化和反序列化使用msgpack方案CELERY_RESULT_SERIALIZER = ’json’ # 讀取任務(wù)結(jié)果一般性能要求不高,所以使用了可讀性更好的JSONCELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24 # celery任務(wù)結(jié)果有效期CELERY_ACCEPT_CONTENT = [’json’, ’msgpack’] # 指定接受的內(nèi)容類型CELERY_TIMEZONE = ’Asia/Shanghai’ # celery使用的時(shí)區(qū)CELERY_ENABLE_UTC = True # 啟動(dòng)時(shí)區(qū)設(shè)置CELERYD_LOG_FILE = '/var/log/celery/celery.log' # celery日志存儲位置

6、創(chuàng)建email目錄,目錄下創(chuàng)建tesks.py文件用來編寫發(fā)送郵件的代碼,代碼如下:

import timefrom celery_tasks.main import celery_app@celery_app.task(name=’seed_email’) # 添加celery_app.task這個(gè)裝飾器,指定該任務(wù)的任務(wù)名name=’seed_email’def seed(): time.sleep(1) return '我將發(fā)送郵件'

7、在項(xiàng)目app.py中,采用delay()用來調(diào)用任務(wù)。

from celery_tasks.email.tasks import seedseed.delay()seed.delay()seed.delay()seed.delay()seed.delay()

8、項(xiàng)目運(yùn)行

首先,我們需要啟動(dòng)redis。接著,切換至proj項(xiàng)目所在目錄,并運(yùn)行命令:

celery -A celery_tasks.main worker -l info

界面如下:

Python celery原理及運(yùn)行流程解析

然后,我們運(yùn)行app.py,app.py調(diào)用添加異步任務(wù),輸出的結(jié)果如下:

Python celery原理及運(yùn)行流程解析

Python celery原理及運(yùn)行流程解析

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Python 編程
相關(guān)文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
久久三级福利| 亚欧成人精品| 中文字幕亚洲精品乱码| 美女被久久久| 亚洲91在线| 久热精品在线| 久久aⅴ国产紧身牛仔裤| 99国产成+人+综合+亚洲欧美| 91久久久精品国产| 国产一区91| 老鸭窝亚洲一区二区三区| 中文字幕一区二区三区日韩精品 | av在线资源| 91成人精品视频| 免费人成黄页网站在线一区二区| 亚洲精品视频一二三区| 日韩在线播放一区二区| 日韩在线黄色| 国内不卡的一区二区三区中文字幕| 少妇精品导航| 欧美亚洲免费| 青青久久av| 日韩精品视频在线看| 国产一区二区三区国产精品| 久久国产福利| yellow在线观看网址| 老牛影视一区二区三区| 欧美激情另类| 在线国产精品一区| 97精品一区| 中文字幕视频精品一区二区三区| 欧美日韩午夜| 久久久久国产精品一区三寸 | 亚洲精品福利| 欧美aa一级| 97精品国产99久久久久久免费| 天堂中文av在线资源库| 日本精品另类| 午夜欧美精品久久久久久久| 国产精久久久| 亚洲精品自拍| 99在线|亚洲一区二区| 久久精品一本| 综合视频一区| 日本а中文在线天堂| 深夜福利一区| 久热综合在线亚洲精品| 久久精品影视| 久久久夜精品| 成人国产精品一区二区网站| 国产亚洲精品精品国产亚洲综合| 99精品99| 极品日韩av| 色爱综合网欧美| 麻豆一区二区99久久久久| 日本不卡视频一二三区| 亚洲丝袜啪啪| 在线视频亚洲欧美中文| 蜜桃视频第一区免费观看| 99热精品在线| 亚洲成人精品| 在线日韩欧美| 久久精品国产68国产精品亚洲| 午夜久久中文| 亚洲天堂免费电影| 久久久人人人| 欧美特黄一级| 综合一区av| 日本不卡一区二区三区| 日韩国产精品久久久久久亚洲| 亚洲精品乱码久久久久久蜜桃麻豆 | 久久三级视频| 免费成人网www| 中文亚洲免费| 日韩在线观看一区二区三区| 欧美日韩夜夜| 亚洲一级少妇| 中文精品视频| 69堂免费精品视频在线播放| 久久超级碰碰| 欧美日韩精品免费观看视欧美高清免费大片| 四虎4545www国产精品 | 免费在线播放第一区高清av| 国际精品欧美精品| 精品一区在线| 91在线成人| 黄色在线观看www| 国产亚洲综合精品| 国产黄色一区| 在线一区视频| 久久精品国产在热久久| 欧美理论视频| 亚洲精品美女91| а√天堂8资源中文在线| 亚洲欧美久久久| 欧美交a欧美精品喷水| 午夜欧美视频| 鲁鲁在线中文| 久久国际精品| 三级欧美在线一区| 超碰超碰人人人人精品| 日本欧美一区二区| 日韩一区二区在线免费| 五月国产精品| 欧美不卡高清一区二区三区| 国产日韩欧美三级| 欧美aa国产视频| 国产乱码精品一区二区三区亚洲人| 国产精品亚洲一区二区三区在线观看| 在线免费观看亚洲| 久久一区二区三区喷水| 九九久久国产| 国产日韩免费| 视频在线观看国产精品| 国产麻豆久久| 国产不卡人人| 欧美激情aⅴ一区二区三区 | 伊人精品一区| 精品日韩在线| 日韩激情中文字幕| 久久大逼视频| 午夜精品亚洲| 亚洲成人日韩| 欧洲亚洲一区二区三区| 国产不卡av一区二区| 国产精品白丝一区二区三区| 爽好多水快深点欧美视频| 亚洲成人精选| 欧美不卡高清| 在线国产一区| 亚洲精品在线观看91| 99精品国产一区二区三区| 牛牛精品成人免费视频| 精品中国亚洲| 国产伦理久久久久久妇女| 日韩三区四区| 国产精品一区免费在线| 精品日韩在线| 日韩精品不卡一区二区| 日韩一区三区| 免费精品视频| 欧美久久香蕉| 久久久久久一区二区| 性欧美xxxx免费岛国不卡电影| 狠狠色综合网| 日本vs亚洲vs韩国一区三区二区| 国产精品久久久久久久久久白浆 | 欧美丝袜一区| 久久aⅴ国产紧身牛仔裤| 天堂久久一区| 国产成人精品一区二区三区视频| 久久精品中文| 日韩超碰人人爽人人做人人添| 国产精品黑丝在线播放| 99在线精品免费视频九九视 | 日韩三区四区| 精品国产午夜肉伦伦影院| 久久国产亚洲精品| 亚洲综合小说| 精品久久影院| 日韩午夜高潮| 国产欧美日韩影院| 999精品一区| 91麻豆精品激情在线观看最新| 欧美日韩尤物久久| 日韩一区中文| 亚洲成人一区| 精品入口麻豆88视频| 三级在线观看一区二区| 国产精品久久| 国产99亚洲| 精品国产a一区二区三区v免费| 99视频+国产日韩欧美| 精品国产精品国产偷麻豆| 亚洲一区日韩| 1024精品一区二区三区| 精品国产精品久久一区免费式| 蜜臀精品久久久久久蜜臀| 蜜桃精品在线| 成人免费一区| 国产精东传媒成人av电影| 亚洲一级大片| 久久av在线| 一级欧洲+日本+国产| 国产精品男女| 日韩欧美激情电影| 99视频在线精品国自产拍免费观看| 久草免费在线视频| 精品久久视频| bbw在线视频| 成人高清一区| 国产精品二区不卡| 精品一区二区三区在线观看视频 | 五月天av在线| 欧美日韩视频网站| 欧美午夜精彩| 久久久久久久久99精品大| 亚洲国产欧美日本视频| 日韩成人亚洲| 99视频精品全部免费在线视频|