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

您的位置:首頁技術文章
文章詳情頁

詳解Python Celery和RabbitMQ實戰教程

瀏覽:23日期:2022-06-29 14:50:18
前言

Celery是一個異步任務隊列。它可以用于需要異步運行的任何內容。RabbitMQ是Celery廣泛使用的消息代理。在本這篇文章中,我將使用RabbitMQ來介紹Celery的基本概念,然后為一個小型演示項目設置Celery 。最后,設置一個Celery Web控制臺來監視我的任務

基本概念

  來!看圖說話:

詳解Python Celery和RabbitMQ實戰教程

BrokerBroker(RabbitMQ)負責創建任務隊列,根據一些路由規則將任務分派到任務隊列,然后將任務從任務隊列交付給worker

Consumer (Celery Workers)Consumer是執行任務的一個或多個Celery workers。可以根據用例啟動許多workers

Result Backend后端用于存儲任務的結果。但是,它不是必需的元素,如果不在設置中包含它,就無法訪問任務的結果

安裝Celery

  首先,需要安裝好Celery,可以使用PyPI:

pip install celery選擇一個Broker:RabbitMQ

  為什么我們需要broker呢?這是因為Celery本身并不構造消息隊列,所以它需要一個額外的消息傳輸來完成這項工作。這里可以將Celery看作消息代理的包裝器

實際上,也可以從幾個不同的代理中進行選擇,比如RabbitMQ、Redis或數據庫(例如Django數據庫)

在這里使用RabbitMQ作為代理,因為它功能完整、穩定,Celery推薦使用它。由于演示我的環境是在Mac OS中,安裝RabbitMQ使用Homebrew即可:

brew install rabbitmq#如果是Ubuntu的話使用apt-get安裝啟動RabbitMQ

  程序將在/usr/local/sbin中安裝RabbitMQ,雖然有些系統可能會有所不同。可以將此路徑添加到環境變量路徑,以便以后方便地使用。例如,打開shell啟動文件~/.bash_profile添加:

PATH=$PATH:/usr/local/sbin

現在,可以使用rabbitmq-server命令啟動我們的RabbitMQ服務器。檢查RabbitMQ服務器成功啟動,將看到類似的輸出:

詳解Python Celery和RabbitMQ實戰教程

為Celery配置RabbitMQ

  RabbitMQ使用Celery之前,需要對RabbitMQ進行一些配置。簡單地說,我們需要創建一個虛擬主機和用戶,然后設置用戶權限,以便它可以訪問虛擬主機

# 添加用戶跟密碼$ rabbitmqctl add_user test test123# 添加虛擬主機$ rabbitmqctl add_vhost test_vhost# 為用戶添加標簽$ rabbitmqctl set_user_tags test test_tag# 設置用戶權限$ rabbitmqctl set_permissions -p test_vhost test '.*' '.*' '.*'

敲黑板!RabbitMQ中有三種操作:配置、寫入和讀取

上面命令末尾的字符串表示用戶test將擁有所有配置、寫入和讀取權限

演示項目

現在讓我們創建一個簡單的項目來演示Celery的使用

詳解Python Celery和RabbitMQ實戰教程

celery.py中添加以下代碼:

from __future__ import absolute_importfrom celery import Celeryapp = Celery(’test_celery’,broker=’amqp://test:test123@localhost/test_vhost’,backend=’rpc://’,include=[’test_celery.tasks’])

在這里,初始化了一個名為app的Celery實例,將用于創建一個任務。Celery的第一個參數只是項目包的名稱,即“test_celery”。

broker參數指定代理URL,對于RabbitMQ,傳輸是amqp。

后端參數指定后端URL。Celery中的后端用于存儲任務結果。因此,如果需要在任務完成時訪問任務的結果,應該為Celery設置一個后端。

rpc意味著將結果作為AMQP消息發送回去,這對本次演示來說是一種可接受的格式

include參數指定了在Celery工作程序啟動時要導入的模塊列表。我們在這里添加了tasks模塊,以便找到我們的任務。

tasks.py這個文件中,定義了我們的任務add_longtime:

from __future__ import absolute_importfrom test_celery.celery import appimport time@app.taskdef add_longtime(a, b): print ’long time task begins’ # sleep 5 seconds time.sleep(5) print ’long time task finished’ return a + b

可以看到,導入了在前面的Celery模塊中定義的應用程序,并將其用作任務方法的裝飾器。另外注意!app.task只是一個裝飾器。此外,我們在add_longtime任務中休眠5秒,以模擬一個耗時較長的Task

在設置好Celery之后,我們需要開始運行任務,它包含在runs_tasks.py:

from .tasks import add_longtimeimport timeif __name__ == ’__main__’: result = add_longtime.delay(1,2)#此時,任務還未完成,它將返回False print ’Task finished? ’, result.ready() print ’Task result: ’, result.result # 延長到10秒以確保任務已經完成 time.sleep(10) # 現在任務完成,ready方法將返回True print ’Task finished? ’, result.ready() print ’Task result: ’, result.result

這里,我們使用delay方法調用任務add_longtime,如果我們想異步處理任務,就需要使用delay方法。此外,保存任務的結果并打印一些信息。如果任務已經完成,ready方法將返回True,否則返回False。result屬性是任務的結果,如果任務尚未完成,則返回None。

啟動Celery

現在,可以使用下面的命令啟動Celery(注:在項目文件夾中運行):

celery -A test_celery worker --loglevel=info

Celery成功連接到RabbitMQ,你會看到這樣的東西:

詳解Python Celery和RabbitMQ實戰教程

運行任務

再項目文件中輸入以下命令運行它:

python -m test_celery.run_tasks

查看Celery控制臺,看到運行任務:

[2020-05-15 17:15:21,508: INFO/MainProcess] Received task: test_celery.tasks.add_longtime[25ba9c87-69a7-4383-b983-1cefdb32f8b3][2020-05-15 17:15:21,508: WARNING/Worker-3] long time task begins[2020-05-15 17:15:31,510: WARNING/Worker-3] long time task finished[2020-05-15 17:15:31,512: INFO/MainProcess]Task test_celery.tasks.add_longtime[25ba9c87-69a7-4383-b983-1cefdb32f8b3] succeeded in 15.003732774s: 3

當Celery收到一個任務,它打印出任務名稱與任務id(在括號中):

Received task: test_celery.tasks.add_longtime[7d942984-8ea6-4e4d-8097-225616f797d5]

在這一行下面是我們的任務add_longtime打印的兩行,時間延遲為5秒:

long time task beginslong time task finished

最后一行顯示我們的任務在5秒內完成,任務結果為3:

Task test_celery.tasks.add_longtime[7d942984-8ea6-4e4d-8097-225616f797d5] succeeded in 5.025242167s: 3

在當前控制臺中,您將看到以下輸出:

詳解Python Celery和RabbitMQ實戰教程

實時監控Celery

Flower是一款基于網絡的Celery實時監控軟件。使用Flower,可以輕松地監視任務進度和歷史記錄

使用pip來安裝Flower:

pip install flower

要啟動Flower web控制臺,需要運行以下命令:

celery -A test_celery flower

Flower將運行具有默認端口5555的服務器,可以通過http://localhost:5555訪問web控制臺

詳解Python Celery和RabbitMQ實戰教程

到此這篇關于詳解Python Celery和RabbitMQ實戰教程的文章就介紹到這了,更多相關Python Celery和RabbitMQ實戰內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
日韩高清电影一区| 欧美日韩va| 免费亚洲婷婷| 久久激情婷婷| 亚洲特色特黄| 国产精品一区二区精品| 欧美三级第一页| 青青国产精品| 久久男女视频| 色婷婷色综合| 午夜国产精品视频| 亚洲精品第一| 国产福利一区二区三区在线播放| 国产精品欧美一区二区三区不卡| 国产一区一一区高清不卡| 99在线观看免费视频精品观看| 日韩亚洲精品在线观看| 国产精品亚洲欧美| re久久精品视频| 麻豆91精品视频| 久久亚洲图片| 日韩精品午夜视频| 激情综合自拍| 成人精品高清在线视频| 日韩一区网站| 日韩av一级| 国产精品一区三区在线观看| 国产麻豆精品| 日韩专区在线视频| 精品国产一区二区三区av片| 国产一区二区三区亚洲| 日本成人中文字幕在线视频| 日韩精品第一| 欧美片网站免费| 制服诱惑一区二区| 日本中文字幕一区二区视频| 国产精品激情| 欧美天堂一区二区| 中文无码久久精品| 老牛国产精品一区的观看方式| 激情黄产视频在线免费观看| 国产精品v亚洲精品v日韩精品| 亚洲网站视频| 日本久久黄色| 日韩成人精品一区二区三区 | 视频在线观看一区二区三区| 国产精品**亚洲精品| 国产美女精品| 国产主播一区| 亚洲精品成人图区| 久久久久久网| 麻豆精品视频在线观看| 国产精品一区二区三区av麻| 日韩国产欧美三级| 日日夜夜免费精品| 亚洲永久字幕| 日韩午夜在线| 久久精品五月| 日韩在线观看一区二区三区| 欧美日韩四区| 成人小电影网站| 欧美成人a交片免费看| 欧美激情一区| 久久精品一区| 高清日韩中文字幕| а√天堂8资源在线| 精品一区二区三区四区五区| 喷白浆一区二区| 中文字幕日本一区| 久久国产精品久久w女人spa| 色乱码一区二区三区网站| 日韩免费久久| 国产精品久久亚洲不卡| 久久一区国产| 亚洲国产福利| а√天堂8资源中文在线| 一级成人国产| 欧美亚洲专区| 久久精品国产网站| 精品伊人久久| 国产一区二区三区久久| 日韩综合在线| 视频一区视频二区中文字幕| 亚洲视频国产| 91精品啪在线观看国产爱臀| 香蕉久久夜色精品国产| 中文字幕乱码亚洲无线精品一区| 日韩亚洲国产欧美| 综合激情婷婷| 久久福利精品| 麻豆国产精品视频| 亚洲福利久久| 中文在线а√在线8| 久久精品播放| 国产欧美69| 亚洲精品日本| 美女高潮久久久| 国产专区一区| 天堂久久一区| 日本精品黄色| 美女视频网站久久| 国产99久久| 亚洲婷婷丁香| 亚洲女同av| 一区三区视频| 日本视频一区二区| 青青草伊人久久| 久久精品国产99国产| 久久av中文| 国产一区二区三区黄网站| 国产二区精品| 麻豆精品少妇| 亚洲天堂日韩在线| 国产精品毛片aⅴ一区二区三区| 亚洲欧洲av| 成人日韩av| 丝袜美腿亚洲一区二区图片| 清纯唯美亚洲综合一区| 国产aa精品| 只有精品亚洲| 国产精品成人自拍| 久久亚洲影院| 黄色aa久久| 国产精品一区二区三区av麻| 99久久亚洲精品蜜臀| 亚洲人成精品久久久| 国产调教精品| 国产精品tv| 国产精品腿扒开做爽爽爽挤奶网站| 欧美肉体xxxx裸体137大胆| 欧美二区视频| 日本激情一区| 国产欧美久久一区二区三区| 久久精品国产福利| 亚洲天堂av资源在线观看| 精品日韩在线| 日韩精品乱码av一区二区| 1024精品一区二区三区| 欧美肉体xxxx裸体137大胆| 久久国产三级精品| 一本色道久久精品| 国产精品久久久久久久久久10秀 | 国产精品久久久久久久久久妞妞| 97欧美在线视频| 欧美综合二区| 99视频精品全国免费| 蜜桃tv一区二区三区| 久久免费影院| 国产剧情在线观看一区| 一级欧美视频| 99视频一区| 亚洲无线一线二线三线区别av| 国产精品一级| 婷婷精品在线观看| 国产精品二区不卡| 麻豆国产精品| 国产精品一区三区在线观看| 欧美综合另类| 久久精品国产99国产| 日韩精品免费观看视频| 蜜臀国产一区| a天堂资源在线| 午夜在线精品偷拍| 丝袜美腿诱惑一区二区三区 | 国产亚洲精品精品国产亚洲综合| 日本亚洲最大的色成网站www | 日韩手机在线| 国产一区二区三区探花| 另类欧美日韩国产在线| 久久成人av| 狠狠干综合网| 欧美成人国产| 亚洲精品自拍| 清纯唯美亚洲综合一区| 日韩午夜在线| 色一区二区三区| 日韩在线观看不卡| 欧美精品导航| 成人在线视频区| 久久国产主播| 欧美片第1页综合| 亚洲综合丁香| 国产激情欧美| 成人福利一区 | 99热免费精品| 999视频精品| 久久99青青| 国产一区二区三区日韩精品| 婷婷视频一区二区三区| 国产精品成人一区二区网站软件| 国产精品一级在线观看| 精品三区视频| 97人人精品| 欧美精品一区二区三区精品| 精品久久久久久久| 一本大道色婷婷在线| 欧美激情日韩| 免费视频亚洲| 一区二区亚洲精品| 麻豆一区在线|