麻豆小视频在线观看_中文黄色一级片_久久久成人精品_成片免费观看视频大全_午夜精品久久久久久久99热浪潮_成人一区二区三区四区

首頁 > 編程 > Python > 正文

Python并行分布式框架Celery詳解

2020-02-15 23:13:10
字體:
來源:轉載
供稿:網友

Celery 簡介

除了redis,還可以使用另外一個神器---Celery。Celery是一個異步任務的調度工具。

Celery 是 Distributed Task Queue,分布式任務隊列,分布式決定了可以有多個 worker 的存在,隊列表示其是異步操作,即存在一個產生任務提出需求的工頭,和一群等著被分配工作的碼農。

在 Python 中定義 Celery 的時候,我們要引入 Broker,中文翻譯過來就是“中間人”的意思,在這里 Broker 起到一個中間人的角色。在工頭提出任務的時候,把所有的任務放到 Broker 里面,在 Broker 的另外一頭,一群碼農等著取出一個個任務準備著手做。

這種模式注定了整個系統會是個開環系統,工頭對于碼農們把任務做的怎樣是不知情的。所以我們要引入 Backend 來保存每次任務的結果。這個 Backend 有點像我們的 Broker,也是存儲任務的信息用的,只不過這里存的是那些任務的返回結果。我們可以選擇只讓錯誤執行的任務返回結果到 Backend,這樣我們取回結果,便可以知道有多少任務執行失敗了。

Celery(芹菜)是一個異步任務隊列/基于分布式消息傳遞的作業隊列。它側重于實時操作,但對調度支持也很好。Celery用于生產系統每天處理數以百萬計的任務。Celery是用Python編寫的,但該協議可以在任何語言實現。它也可以與其他語言通過webhooks實現。Celery建議的消息隊列是RabbitMQ,但提供有限支持Redis, Beanstalk, MongoDB, CouchDB, 和數據庫(使用SQLAlchemy的或Django的 ORM) 。

Celery是易于集成Django, Pylons and Flask,使用 django-celery, celery-pylons and Flask-Celery 附加包即可。

在學習Celery之前,我先簡單的去了解了一下什么是生產者消費者模式。

生產者消費者模式

在實際的軟件開發過程中,經常會碰到如下場景:某個模塊負責產生數據,這些數據由另一個模塊來負責處理(此處的模塊是廣義的,可以是類、函數、線程、進程等)。產生數據的模塊,就形象地稱為生產者;而處理數據的模塊,就稱為消費者。

單單抽象出生產者和消費者,還夠不上是生產者消費者模式。該模式還需要有一個緩沖區處于生產者和消費者之間,作為一個中介。生產者把數據放入緩沖區,而消費者從緩沖區取出數據,如下圖所示:

生產者消費者模式是通過一個容器來解決生產者和消費者的強耦合問題。生產者和消費者彼此之間不直接通訊,而通過消息隊列(緩沖區)來進行通訊,所以生產者生產完數據之后不用等待消費者處理,直接扔給消息隊列,消費者不找生產者要數據,而是直接從消息隊列里取,消息隊列就相當于一個緩沖區,平衡了生產者和消費者的處理能力。這個消息隊列就是用來給生產者和消費者解耦的。------------->這里又有一個問題,什么叫做解耦?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 特级毛片a级毛片100免费 | 久久精品国产99国产精品澳门 | 国产成人精品区 | 羞羞电影在线观看 | 538任你躁在线精品视频网站 | 性盈盈盈影院 | 黄色大片大毛片 | 免费亚洲视频在线观看 | 毛片中文字幕 | 成人国产精品一区二区毛片在线 | 日本成人一区二区三区 | 国内一区 | 欧美1区2区在线观看 | 激情国产视频 | 久久国产精品二国产精品中国洋人 | 亚洲精品成人久久 | 亚洲少妇诱惑 | jj视频在线播放 | 中文在线日韩 | av色在线观看| 日韩视频在线不卡 | 黄色影院在线看 | 99这里有精品 | 最新一级毛片 | 成年人网站视频免费 | 国产精品视频免费在线观看 | 免费毛片儿 | 久久精品国产99久久6动漫亮点 | 国产精品一区在线观看 | 国产美女爽到喷白浆的 | 久草手机视频在线观看 | 四虎久草| 一级做a爰片性色毛片2021 | 欧美中文字幕一区二区三区亚洲 | 国产日韩久久久久69影院 | 久久久久久久久国产精品 | 爱爱插插视频 | 国产亚洲精品久久久久5区 综合激情网 | 免费在线观看亚洲 | 精品久久久久久久久久久久久久久久久久久 | 91资源在线观看 |