成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

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

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

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

celery簡介

celery是一個基于分布式消息傳輸?shù)漠惒饺蝿?wù)隊(duì)列,它專注于實(shí)時處理,同時也支持任務(wù)調(diào)度。它的執(zhí)行單元為任務(wù)(task),利用多線程,如Eventlet,gevent等,它們能被并發(fā)地執(zhí)行在單個或多個職程服務(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)程會讀取配置文件的內(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)者,通常會在多臺服務(wù)器運(yùn)行多個消費(fèi)者來提高執(zhí)行效率。 Result Backend:任務(wù)處理完后保存狀態(tài)信息和結(jié)果,以供查詢。Celery默認(rèn)已支持Redis、RabbitMQ、MongoDB、Django ORM、SQLAlchemy等方式。

工作原理

它的基本工作就是管理分配任務(wù)到不同的服務(wù)器,并且取得結(jié)果。至于說服務(wù)器之間是如何進(jìn)行通信的?這個Celery本身不能解決。所以,RabbitMQ作為一個消息隊(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)建一個工程項(xiàng)目project,然后再項(xiàng)目內(nèi)創(chuàng)建一個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ù)列表

分析一下這個程序:

'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使用的時區(qū)CELERY_ENABLE_UTC = True # 啟動時區(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這個裝飾器,指定該任務(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)行

首先,我們需要啟動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)文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
97精品久久久久中文字幕 | 亚洲美女黄色| 精品第一国产综合精品aⅴ| 国产一区二区精品在线观看| 在线欧美日韩精品| 日韩一区欧美二区| 久久久天天操| 亚洲成人7777| 久久高清免费观看| 亚洲国产精品一区二区久久恐怖片| 极品日韩av| 欧美另类z0zxhd电影| 蜜桃精品视频在线| 久久三级福利| 亚洲不卡一区二区三区| 国产视频一区三区| 一区二区三区电影在线播| 亚洲国产精品一区| 亚洲天堂2016| 在线精品亚洲一区二区| 国产精品美女久久久久久2018| 99re视频精品| 久久久久久久久久久99999| 欧美一区1区三区3区公司| 久久综合九色综合欧美就去吻 | 亚洲三级电影网站| 在线成人av| 一色屋精品亚洲香蕉网站| 欧美特黄一区| 亚洲男人都懂的| 国产精品免费一区二区三区在线观看 | 国产精品日韩欧美一区二区三区| 中文字幕一区二区三区在线不卡| 好看的日韩av电影| 国产精品久久久久久妇女6080| 亚洲午夜久久久久久尤物| 一区二区三区四区激情| 麻豆av一区二区三区久久| 免费看黄色91| 欧美日韩国产色站一区二区三区| 国产一区二区三区久久久 | 国产91精品欧美| 久久综合久久综合九色| 欧美日一区二区在线观看| 亚洲视频每日更新| 国产精品久久一区二区三区| 免费人成黄页网站在线一区二区 | 亚洲视频资源在线| 国产精品入口66mio| 天天操天天综合网| 日韩电影网1区2区| 欧美精品九九99久久| 成人短视频下载| 亚洲天天做日日做天天谢日日欢| 亚洲女人av| 精品一区二区影视| 26uuu精品一区二区| 欧美国产91| 一区二区三区在线播放| 91国产成人在线| 大胆欧美人体老妇| 国产精品麻豆网站| 另类图片国产| 国产一区二区三区久久久| 337p日本欧洲亚洲大胆色噜噜| 国内不卡一区二区三区| 五月婷婷综合激情| 日韩一卡二卡三卡国产欧美| 91啪九色porn原创视频在线观看| 亚洲欧美在线视频| 久久资源在线| 国产成都精品91一区二区三| 欧美国产亚洲另类动漫| 亚洲欧美久久久久一区二区三区| 韩国女主播一区| 国产婷婷一区二区| 亚洲在线网站| 国产成人在线观看免费网站| 国产精品美女久久福利网站| 色婷婷精品大在线视频| 不卡视频免费播放| 亚洲在线视频免费观看| 国产亚洲精品久久久久婷婷瑜伽| 国产一区二区女| 中文子幕无线码一区tr| 色综合久久88色综合天天| 成人免费观看av| 亚洲日本免费电影| 在线观看日韩毛片| 99精品视频免费在线观看| 一区二区三区色| 91精品国产综合久久香蕉的特点 | 欧美日韩和欧美的一区二区| 欧美777四色影| 日韩影视精彩在线| 久久精品一区二区三区四区| 亚洲欧美国产精品桃花| 成人三级伦理片| 亚洲一区二区美女| 精品国产一区二区三区四区四| 国产日韩欧美一区在线| 国产91露脸合集magnet| 一区二区三区在线视频免费| 日韩久久免费av| 日韩午夜av在线| 夫妻av一区二区| 亚洲电影欧美电影有声小说| 欧美tk—视频vk| 久久精品一本| 欧美日韩无遮挡| 国产麻豆一精品一av一免费| 怡红院av一区二区三区| 日韩欧美一区二区视频| 国产精品日韩欧美一区二区| av资源站一区| 免费成人av资源网| 亚洲欧洲日韩一区二区三区| 欧美va天堂va视频va在线| 欧美专区在线| 韩国av一区| 国产成人精品三级麻豆| 午夜免费久久看| 中文欧美字幕免费| 欧美一卡二卡三卡| 久久综合电影| 亚洲精品韩国| 色综合天天综合| 风间由美一区二区av101| 日本亚洲电影天堂| 亚洲欧洲av另类| 久久亚洲精品小早川怜子| 欧美视频中文字幕| 夜夜爽av福利精品导航| 99久久精品免费观看| 久久99国产精品麻豆| 亚洲图片有声小说| 国产精品国产三级国产aⅴ中文| 日韩一级二级三级精品视频| 性欧美精品高清| 一区二区在线视频观看| 成人毛片在线观看| 经典三级在线一区| 亚洲综合免费观看高清完整版在线| 久久综合九色综合97婷婷女人 | 欧美日本中文| 成人天堂资源www在线| 美国十次了思思久久精品导航| 亚洲精品精品亚洲| 国产区在线观看成人精品| 91精品国产一区二区| 在线观看免费亚洲| 亚洲综合视频一区| 一本一本a久久| 国产在线不卡| 欧美日韩精品免费观看视频完整| 成人av午夜影院| 国产盗摄一区二区三区| 国产一区二区三区在线观看免费视频 | 91麻豆国产精品久久| 国产成人免费高清| 国产美女视频91| 美腿丝袜亚洲一区| 黑人精品欧美一区二区蜜桃| 美脚の诱脚舐め脚责91| 日韩成人dvd| 日韩二区三区在线观看| 午夜精品久久久久久久| 午夜视频在线观看一区二区| 亚洲五月六月丁香激情| 亚洲一级在线观看| 亚洲电影在线播放| 亚洲国产视频在线| 亚洲午夜视频在线| 亚洲成人动漫精品| 亚洲一区在线电影| 亚洲国产一区二区在线播放| 亚洲男同1069视频| 亚洲人成网站色在线观看| 国产精品电影院| 国产精品毛片大码女人| 最新欧美精品一区二区三区| 亚洲欧洲www| 亚洲另类在线制服丝袜| 亚洲欧美一区二区三区孕妇| 一区免费观看视频| 亚洲精品综合在线| 一区二区不卡在线播放 | 亚洲国产wwwccc36天堂| 亚洲国产日产av| 日韩精品91亚洲二区在线观看 | 国产精品国产三级国产| 亚洲欧洲av一区二区三区久久| 亚洲日本va在线观看| 亚洲综合在线电影| 亚洲第一成年网| 日韩不卡免费视频| 精品午夜久久福利影院 | 一区二区三区蜜桃| 午夜激情综合网| 激情丁香综合五月|