[轉(zhuǎn)載]python—Celery異步分布式

一、Celery異步分布式

Celery ?是一個(gè)python開發(fā)的異步分布式任務(wù)調(diào)度模塊莫湘,是一個(gè)消息傳輸?shù)闹虚g件,可以理解為一個(gè)郵箱,每當(dāng)應(yīng)用程序調(diào)用celery的異步任務(wù)時(shí)毅糟,會(huì)向broker傳遞消息,然后celery的worker從中取消息

Celery ?用于存儲(chǔ)消息以及celery執(zhí)行的一些消息和結(jié)果

對(duì)于brokers澜公,官方推薦是rabbitmq和redis

對(duì)于backend姆另,也就是指數(shù)據(jù)庫,為了簡單一般使用redis

使用redis連接url格式:

redis://:password@hostname:port/db_number

1)定義連接腳本tasks.py

#!/usr/bin/env pythonfromceleryimportCelerybroker="redis://192.168.2.230:6379/1"backend="redis://192.168.2.230:6379/2"app=Celery("tasks",broker=broker,backend=backend)@app.taskdefadd(x,y):returnx+y

2)安裝啟動(dòng)celery

pip install celery

pip install redis

啟動(dòng)方式:celery -A huang?tasks?-l info ?#-l 等同于 --loglevel

3)執(zhí)行測(cè)試 huang.py?

#!/usr/bin/env pythonfromtasksimportaddre=add.delay(10,20)print(re.result)#任務(wù)返回值print(re.ready)#如果任務(wù)被執(zhí)行返回True,其他情況返回Falseprint(re.get(timeout=1))#帶參數(shù)的等待坟乾,最后返回結(jié)果print(re.status)#任務(wù)當(dāng)前狀態(tài)

運(yùn)行結(jié)果:

30

<bound method AsyncResult.ready of <AsyncResult: d2e0a2d8-cdd9-4fe3-a8bb-81fe3c53ba9a>>

30

SUCCESS

4)根據(jù)成功返回的key或celery界面輸出的信息迹辐,查看redis存儲(chǔ)

說明:停止celery服務(wù),執(zhí)行完huang.py之后甚侣,再啟動(dòng)celery服務(wù)也是有保存數(shù)據(jù)的

二明吩、celery多進(jìn)程

1)配置文件 celeryconfig.py

#!/usr/bin/env python#-*- coding:utf-8 -*-fromkombuimportExchange,QueueBROKER_URL="redis://192.168.2.230:6379/3"CELERY_RESULT_BACKEND="redis://192.168.2.230:6379/4"CELERY_QUEUES=(Queue("default",Exchange("default"),routing_key="default"),Queue("for_task_A",Exchange("for_task_A"),routing_key="for_task_A"),Queue("for_task_B",Exchange("for_task_B"),routing_key="for_task_B"))CELERY_ROUTES={'tasks.taskA':{"queue":"for_task_A","routing_key":"for_task_A"},'tasks.taskB':{"queue":"for_task_B","routing_key":"for_task_B"}}

2)tasks.py

#!/usr/bin/env python#-*- coding:utf-8 -*-fromceleryimportCeleryapp=Celery()app.config_from_object("celeryconfig")@app.taskdeftaskA(x,y):returnx+y? ? @app.taskdeftaskB(x,y,z):returnx+y+z

3)啟動(dòng)celery

celery -A tasks worker --loglevel info

4)執(zhí)行腳本huang2.py

#!/usr/bin/env python#-*- coding:utf-8 -*-fromtasksimporttaskA,taskBre=taskA.delay(10,20)print(re.result)#任務(wù)返回值print(re.ready)#如果任務(wù)被執(zhí)行返回True,其他情況返回Falseprint(re.get(timeout=1))#帶參數(shù)的等待,最后返回結(jié)果print(re.status)#任務(wù)當(dāng)前狀態(tài)re2=taskB.delay(10,20,30)print(re2.result)print(re2.ready)print(re2.get(timeout=1))print(re2.status)

5)運(yùn)行結(jié)果

None

<bound method AsyncResult.ready of <AsyncResult: e34a8490-05a7-473e-a082-f4956cabfc99>>

30

SUCCESS

None

<bound method AsyncResult.ready of <AsyncResult: 3c5cd839-dbe2-4e63-ba4e-86e8c79d943f>>

60

SUCCESS


https://blog.51cto.com/huangzp/2052713

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末殷费,一起剝皮案震驚了整個(gè)濱河市印荔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌详羡,老刑警劉巖仍律,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異实柠,居然都是意外死亡水泉,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門窒盐,熙熙樓的掌柜王于貴愁眉苦臉地迎上來茶行,“玉大人,你說我怎么就攤上這事登钥∨鲜Γ” “怎么了?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵牧牢,是天一觀的道長看锉。 經(jīng)常有香客問我,道長塔鳍,這世上最難降的妖魔是什么伯铣? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮轮纫,結(jié)果婚禮上腔寡,老公的妹妹穿的比我還像新娘。我一直安慰自己掌唾,他們只是感情好放前,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布忿磅。 她就那樣靜靜地躺著,像睡著了一般凭语。 火紅的嫁衣襯著肌膚如雪葱她。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天似扔,我揣著相機(jī)與錄音吨些,去河邊找鬼。 笑死炒辉,一個(gè)胖子當(dāng)著我的面吹牛豪墅,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播黔寇,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼但校,長吁一口氣:“原來是場噩夢(mèng)啊……” “哼!你這毒婦竟也來了啡氢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤术裸,失蹤者是張志新(化名)和其女友劉穎倘是,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體袭艺,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡搀崭,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了猾编。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片瘤睹。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖答倡,靈堂內(nèi)的尸體忽然破棺而出轰传,到底是詐尸還是另有隱情,我是刑警寧澤瘪撇,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布获茬,位于F島的核電站,受9級(jí)特大地震影響倔既,放射性物質(zhì)發(fā)生泄漏恕曲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一渤涌、第九天 我趴在偏房一處隱蔽的房頂上張望佩谣。 院中可真熱鬧,春花似錦实蓬、人聲如沸茸俭。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽瓣履。三九已至率翅,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間袖迎,已是汗流浹背冕臭。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留燕锥,地道東北人辜贵。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像归形,于是被迫代替她去往敵國和親托慨。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348