1. <nobr id="easjo"><address id="easjo"></address></nobr>

      <track id="easjo"><source id="easjo"></source></track>
      1. 
        

      2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
      3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>
          貴州做網站公司
          貴州做網站公司~專業!靠譜!
          10年網站模板開發經驗,熟悉國內外開源網站程序,包括DEDECMS,WordPress,ZBlog,Discuz! 等網站程序,可為您提供網站建設,網站克隆,仿站,網頁設計,網站制作,網站推廣優化等服務。我們專注高端營銷型網站,企業官網,集團官網,自適應網站,手機網站,網絡營銷,網站優化,網站服務器環境搭建以及托管運維等。為客戶提供一站式網站解決方案?。?!

          celery(使用celery怎么實現集群管理)

          來源:互聯網轉載 時間:2024-04-30 12:47:58

          架構:

          這里作為例子的celery app為myapp:

          root@workgroup0:~/celeryapp#lsmyappagent.pycelery.pyconfig.py__init__.pyroot@workgroup0:~/celeryapp#

          公用代碼部分:

          celery.py:(備注:172.16.77.175是任務發布節點的ip地址)

          from__future__importabsolute_importfromceleryimportCeleryapp=Celery('myapp',broker='amqp://guest@172.16.77.175//',backend='amqp://guest@172.16.77.175//',include=['myapp.agent'])app.config_from_object('myapp.config')if__name__=='__main__':app.start()

          config.py:

          from__future__importabsolute_importfromkombuimportQueue,ExchangefromdatetimeimporttimedeltaCELERY_TASK_RESULT_EXPIRES=3600CELERY_TASK_SERIALIZER='json'CELERY_ACCEPT_CONTENT=['json']CELERY_RESULT_SERIALIZER='json'CELERY_DEFAULT_EXCHANGE='agent'CELERY_DEFAULT_EXCHANGE_TYPE='direct'CELERT_QUEUES=(Queue('machine1',exchange='agent',routing_key='machine1'),Queue('machine2',exchange='agent',routing_key='machine2'),)

          __init__.py:(空白)

          任務發布節點的agent.py:

          from__future__importabsolute_importfrommyapp.celeryimportapp@app.taskdefadd(x,y):return{'thevalueis':str(x+y)}@app.taskdefwritefile():out=open('/tmp/data.txt','w')out.write('hello'+'\n')out.close()@app.taskdefmul(x,y):returnx*y@app.taskdefxsum(numbers):returnsum(numbers)@app.taskdefgetl(stri):returngetlength(stri)defgetlength(stri):returnlen(stri)

          docker1上的agent.py:

          from__future__importabsolute_importfrommyapp.celeryimportapp@app.taskdefadd(x,y):return{'value':str(x+y),'node_name':'docker1'}#增加了node_name用來識別節點@app.taskdefwritefile():out=open('/tmp/data.txt','w')out.write('hello'+'\n')out.close()@app.taskdefmul(x,y):returnx*y@app.taskdefxsum(numbers):returnsum(numbers)@app.taskdefgetl(stri):returngetlength(stri)defgetlength(stri):returnlen(stri)

          docker2上的:

          from__future__importabsolute_importfrommyapp.celeryimportapp@app.taskdefadd(x,y):return{'value':str(x+y),'node_name':'docker2'}@app.taskdefwritefile():out=open('/tmp/data.txt','w')out.write('hello'+'\n')out.close()@app.taskdefmul(x,y):returnx*y@app.taskdefxsum(numbers):returnsum(numbers)@app.taskdefgetl(stri):returngetlength(stri)defgetlength(stri):returnlen(stri)

          在這個例子中我只測試add()函數:

          在docker1節點上啟動worker:(用-Q指定監聽的queue)

          root@workgroup1:~/celeryapp#celery-Amyappworker-linfo-Qmachine1/usr/local/lib/python2.7/dist-packages/celery/platforms.py:766:RuntimeWarning:Youarerunningtheworkerwithsuperuserprivileges,whichisabsolutelynotrecommended!Pleasespecifyadifferentuserusingthe-uoption.Userinformation:uid=0euid=0gid=0egid=0uid=uid,euid=euid,gid=gid,egid=egid,--------------celery@workgroup1.hzg.comv3.1.17(Cipater)----****--------*****--Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty--*-****----**----------[config]-**----------.>app:myapp:0x7f472d73f190-**----------.>transport:amqp://guest:**@172.16.77.175:5672//-**----------.>results:amqp://guest@172.16.77.175//-***---*---.>concurrency:1(prefork)--*******-------*****-----[queues]--------------.>machine1exchange=machine1(direct)key=machine1[tasks].myapp.agent.add.myapp.agent.getl.myapp.agent.mul.myapp.agent.writefile.myapp.agent.xsum[2015-10-1815:07:51,313:INFO/MainProcess]Connectedtoamqp://guest:**@172.16.77.175:5672//[2015-10-1815:07:51,340:INFO/MainProcess]mingle:searchingforneighbors[2015-10-1815:07:52,372:INFO/MainProcess]mingle:syncwith1nodes[2015-10-1815:07:52,374:INFO/MainProcess]mingle:synccomplete[2015-10-1815:07:52,423:WARNING/MainProcess]celery@workgroup1.hzg.comready.

          啟動docker2上的worker:

          root@workgroup2:~/celeryapp#celery-Amyappworker-linfo-Qmachine2/usr/local/lib/python2.7/dist-packages/celery/platforms.py:766:RuntimeWarning:Youarerunningtheworkerwithsuperuserprivileges,whichisabsolutelynotrecommended!Pleasespecifyadifferentuserusingthe-uoption.Userinformation:uid=0euid=0gid=0egid=0uid=uid,euid=euid,gid=gid,egid=egid,--------------celery@workgroup2.hzg.comv3.1.18(Cipater)----****--------*****--Linux-3.13.0-24-generic-x86_64-with-Ubuntu-14.04-trusty--*-****----**----------[config]-**----------.>app:myapp:0x7f708cb8ec10-**----------.>transport:amqp://guest:**@172.16.77.175:5672//-**----------.>results:amqp://guest@172.16.77.175//-***---*---.>concurrency:1(prefork)--*******-------*****-----[queues]--------------.>machine2exchange=machine2(direct)key=machine2[tasks].myapp.agent.add.myapp.agent.getl.myapp.agent.mul.myapp.agent.writefile.myapp.agent.xsum[2015-10-1815:08:52,114:INFO/MainProcess]Connectedtoamqp://guest:**@172.16.77.175:5672//[2015-10-1815:08:52,144:INFO/MainProcess]mingle:searchingforneighbors[2015-10-1815:08:53,174:INFO/MainProcess]mingle:syncwith1nodes[2015-10-1815:08:53,176:INFO/MainProcess]mingle:synccomplete[2015-10-1815:08:53,227:WARNING/MainProcess]celery@workgroup2.hzg.comready.

          在任務發布節點發布一個計算任務給docker1:

          root@workgroup0:~/celeryapp#lsdefault.etcdhots.shhotswap.pymyappmyapp1tmppeople.dbrespsoratest.pyroot@workgroup0:~/celeryapp#pythonPython2.7.6(default,Mar222014,22:59:56)[GCC4.8.2]onlinux2Type"help","copyright","credits"or"license"formoreinformation.>>>frommyapp.agentimportadd>>>res=add.apply_async(args=[122,34],queue='machine1',routing_key='machine1')>>>res.get(){u'value':u'156',u'node_name':u'docker1'}

          用get()可以看到來自docker1的返回,再看看docker1的顯示:

          [2015-10-1815:11:51,217:INFO/MainProcess]Taskmyapp.agent.add[c487a9a2-e5cc-462b-a131-784b363a1952]succeededin0.03602907s:{'value':'156','node_name':'docker1'}

          至于docker2,一點沒動:

          [2015-10-1815:08:53,176:INFO/MainProcess]mingle:synccomplete[2015-10-1815:08:53,227:WARNING/MainProcess]celery@workgroup2.hzg.comready.

          發布一個任務給docker2:

          >>>res=add.apply_async(args=[1440,900],queue='machine2',routing_key='machine2')>>>res.get(){u'value':u'2340',u'node_name':u'docker2'}>>>

          以上就是使用celery怎么實現集群管理,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注本站行業資訊頻道。

          標簽:celery-

          c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...

          2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...

          :喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...

          愛分享抖音點贊賺錢是真的嗎?目前來看,愛分享抖音點贊賺錢是不靠譜的,也就不完全真。在具體的操作中我們能發現這個操作和之前的網絡打字員、刷單員基本一致,即相關任務方其實就是靠著推廣出去來拉人頭賺錢,又或者是設定一百個人每天搶一個任務的方式來迷惑參與者。當然,在這個環節,真正賺錢的還是上層,我們普通人很難在中間獲利。抖音好幾百萬點贊怎么做到的?方法/步驟首先得有大量的粉絲,當別人關注你之后,你的視頻會...

          2022年全球十大商品貿易公司1、維多集團維多集團(Vitol Group)是全球更大的石油和天然氣實物貿易商,原油是其能源業務中最重要的部分。其他商品貿易包括:糖,金屬和谷物。維多集團每年運送超過3.5億噸原油,并將250艘超級油輪和其他船運往世界各地。 它平均每天處理超過700萬桶石油和產品-大約2、嘉能可國際嘉能可國際(Glencore ***ernational)是金屬,礦物和石油的更大貿...

          (資料圖)在生活中,很多人都不知道HD7750這個顯卡怎么樣是什么意思,其實他的意思是非常簡單的,下面就是小編搜索到的HD7750這個顯卡怎么樣相關的一些知識,我們一起來學習下吧!藍寶石HD7750 1G GDDR5顯卡是一款主流性能級獨立顯卡,和GTX650的性能相當。性能方面,評測顯示HD7750已超過HD6770,看功耗,HD7750明顯低很多,能耗比很高。HD7750是28NM的架構,和老...

          TOP
          国产初高中生视频在线观看|亚洲一区中文|久久亚洲欧美国产精品|黄色网站入口免费进人
          1. <nobr id="easjo"><address id="easjo"></address></nobr>

              <track id="easjo"><source id="easjo"></source></track>
              1. 
                

              2. <bdo id="easjo"><optgroup id="easjo"></optgroup></bdo>
              3. <track id="easjo"><source id="easjo"><em id="easjo"></em></source></track><option id="easjo"><span id="easjo"><em id="easjo"></em></span></option>