理解分布式任務(wù)隊(duì)列Celery

一.使用Celery

? ? 1.什么是Celery?

? ? ? ? ? ? Celery是一個(gè)專注于實(shí)時(shí)處理和任務(wù)調(diào)度的分布式任務(wù)隊(duì)列将谊。所謂任務(wù)就是消息女蜈,消息中的有效載荷中包含要執(zhí)行任務(wù)需要的全部數(shù)據(jù)涂屁。

? ? 2.使用Celery的常見(jiàn)場(chǎng)景如下:

? ? ? ? ? ? ?a.? ? web應(yīng)用牲览。當(dāng)用戶觸發(fā)的一個(gè)操作需要較長(zhǎng)時(shí)間才能執(zhí)行完成時(shí)寥枝,可以把它作為任務(wù)交給Celery去異步執(zhí)行盖奈,執(zhí)行完成在返回給用? ?????????????????????戶混坞。這段時(shí)間用戶不需要等待,提高了網(wǎng)站的整體吞吐量和響應(yīng)時(shí)間钢坦。

? ? ? ? ? ? ?b.? ? 定時(shí)任務(wù)究孕。生產(chǎn)環(huán)境經(jīng)常會(huì)跑一些定時(shí)任務(wù)。假如你有上千臺(tái)的服務(wù)器爹凹、上千種任務(wù)厨诸,定時(shí)任務(wù)的管理很困難,Celery可以幫助我們

? ? ? ? ? ? ? ? ? ? 快速在不同的機(jī)器設(shè)定不同種任務(wù)禾酱。

? ? ? ? ? ? ?c.? ? 其他可以異步執(zhí)行的任務(wù)微酬。為了充分提高網(wǎng)站性能,對(duì)于請(qǐng)求和響應(yīng)之外的那些不要求必須同步完成的附加工作都可以異步完成颤陶。 比? ? ? ? ? ? ? ? ? ? ? 如發(fā)送短信/郵件颗管、推送消息、清理/設(shè)置緩存等滓走。

? ? ?3.Celery還提供了如下的特性:

? ? ? ? ? ? ?a.? ? 方便地查看定時(shí)任務(wù)的執(zhí)行情況垦江,比如執(zhí)行是否成功、當(dāng)前狀態(tài)搅方、執(zhí)行任務(wù)花費(fèi)的時(shí)間等比吭。

? ? ? ? ? ? ?b.? ? 可以使用功能齊備的管理后臺(tái)或者命令行添加、更新腰懂、刪除任務(wù)梗逮。

? ? ? ? ? ? ?c.? ? 方便把任務(wù)和配置管理相關(guān)聯(lián)。

? ? ? ? ? ? ?d.? ? 可選多進(jìn)程绣溜、Eventlet和Gevent三種模式并發(fā)執(zhí)行慷彤。

? ? ? ? ? ? ?e.? ? 提供錯(cuò)誤處理機(jī)制。

? ? ? ? ? ? ?f.? ? 提供多種任務(wù)原語(yǔ),方便實(shí)現(xiàn)任務(wù)分組底哗、拆分和調(diào)用鏈岁诉。

? ? ? ? ? ? ?g.? ? 支持多種消息代理和存儲(chǔ)后端。

二.Celery的架構(gòu)

? ? Celery包含如下組件:

? ? ? ? ? ? Celery Beat:? ? 任務(wù)調(diào)度器跋选,Beat進(jìn)程會(huì)讀取配置文件的內(nèi)容涕癣,周期性地將配置中到期需要執(zhí)行的任務(wù)發(fā)送給任務(wù)隊(duì)列。

? ? ? ? ? ? Producer:? ? 生產(chǎn)者前标,調(diào)用了Celery提供的API坠韩、函數(shù)或者裝飾器而產(chǎn)生任務(wù)并交給任務(wù)隊(duì)列處理的都是任務(wù)生產(chǎn)者。

? ? ? ? ? ? Celery Worker:? ? 執(zhí)行任務(wù)的消費(fèi)者炼列,通常會(huì)在多臺(tái)服務(wù)器運(yùn)行多個(gè)消費(fèi)者來(lái)提高執(zhí)行效率只搁。

? ? ? ? ? ? Broker:????消息代理,或者叫作消息中間件俭尖,接受任務(wù)生產(chǎn)者發(fā)送過(guò)來(lái)的任務(wù)消息氢惋,存進(jìn)隊(duì)列再按序分發(fā)給任務(wù)消費(fèi)方(通常是消息隊(duì)列或者

? ? ? ? ? ? 數(shù)據(jù)庫(kù))。

? ? ? ? ? ? Result Backend:? ? 任務(wù)處理完后保存狀態(tài)信息和結(jié)果稽犁,以供查詢焰望。Celery默認(rèn)已支持Redis、RabbitMQ已亥、MongoDB熊赖、Django ORM、

? ? ? ? ? ? SQLALchemy等方式陷猫。

? ? ? ? Celery的架構(gòu)圖:


? ? ? ? ? ??

? ? ? ? ? ? ? ??

????????? ? ? ??

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末秫舌,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子绣檬,更是在濱河造成了極大的恐慌足陨,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件娇未,死亡現(xiàn)場(chǎng)離奇詭異墨缘,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)零抬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門镊讼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人平夜,你說(shuō)我怎么就攤上這事蝶棋。” “怎么了忽妒?”我有些...
    開封第一講書人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵玩裙,是天一觀的道長(zhǎng)兼贸。 經(jīng)常有香客問(wèn)我,道長(zhǎng)吃溅,這世上最難降的妖魔是什么溶诞? 我笑而不...
    開封第一講書人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮决侈,結(jié)果婚禮上螺垢,老公的妹妹穿的比我還像新娘。我一直安慰自己赖歌,他們只是感情好枉圃,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著俏站,像睡著了一般讯蒲。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上肄扎,一...
    開封第一講書人閱讀 49,749評(píng)論 1 289
  • 那天,我揣著相機(jī)與錄音赁酝,去河邊找鬼犯祠。 笑死,一個(gè)胖子當(dāng)著我的面吹牛酌呆,可吹牛的內(nèi)容都是我干的衡载。 我是一名探鬼主播,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼隙袁,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼痰娱!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起菩收,我...
    開封第一講書人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤梨睁,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后娜饵,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體坡贺,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年箱舞,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了遍坟。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡晴股,死狀恐怖愿伴,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情电湘,我是刑警寧澤隔节,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布万搔,位于F島的核電站,受9級(jí)特大地震影響官帘,放射性物質(zhì)發(fā)生泄漏瞬雹。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一刽虹、第九天 我趴在偏房一處隱蔽的房頂上張望酗捌。 院中可真熱鬧,春花似錦涌哲、人聲如沸胖缤。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)哪廓。三九已至,卻和暖如春初烘,著一層夾襖步出監(jiān)牢的瞬間涡真,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工肾筐, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留哆料,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓吗铐,卻偏偏與公主長(zhǎng)得像东亦,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子唬渗,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容