日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > python >内容正文

python

python celery应用场景_Celery使用背景与功能概要

發布時間:2025/3/15 python 17 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python celery应用场景_Celery使用背景与功能概要 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Celery使用背景與功能概要

2018-03-28T00:35:49

532

0

0

#### Celery是Python開發的分布式任務調度模塊。

#### 本系列文章將詳細講解Celery的各種功能。

#### 本文首先講解一下Celery使用背景與功能概要。

## 任務隊列的應用場景

在 Web2.0 后的時代,社交網站、搜索引擎的的迅猛發展對 Web 服務的后臺管理系統提出了更高的需求。

考慮幾個常見的使用場景:

- 社交網站的用戶在其主頁發布了一組新的照片,這條新鮮事需要適時地推送至該用戶的所有好友。該網站的活躍用戶有千萬級別,在同一時刻會有非常多的“新鮮事推送”任務需要處理,并且每個用戶的好友數會達到 1000+的級別。出于用戶體驗的考慮,用戶發布照片的這個操作需要在較短時間內得到反饋。

- 在文獻搜索系統的主頁,用戶可以查到當前一小時內最熱門的十大文獻,并且能夠直接訪問該文獻。該文獻管理系統所管理的文獻數量非常多,達到 PB 的級別。處于用戶體驗的考慮,用戶獲得十大熱門文獻這個動作需要在較短時間內獲得反饋。

考慮對于高并發大用戶量的 Web 服務系統,對于場景一和場景二中的需求,如果在請求處理周期內完成這些任務,然后再返回結果,這種傳統的做法會導致用戶等待的時間過長。同時 Web 服務管理后臺對任務處理能力也缺乏擴展性。

在這些場景下,任務隊列是有效的解決方案。

在一個任務隊列系統中,“將新鮮事推送至用戶A的所有好友”或者“查詢當前最熱門的十大文獻”這種查詢或者計算工作可以被當成一個“任務”。

在任務隊列系統中,一般有任務生產者、任務處理中間方以及任務處理者三方。

- 任務生產者負責創建任務,比如“將新鮮事推送至用戶A的所有好友”這一任務的發起方就可以稱作任務生產者。

- 任務處理中間方負責接收任務生產者的任務處理請求,對任務進行調度,最后將任務分發給任務處理者來進行處理。

- 任務處理者就是執行任務的一方,它負責接收任務處理中間方發來的任務處理請求,完成這些任務,并且返回任務處理的結果。

在生產方、消費者和任務處理中間方之間一般使用消息傳遞的方式來進行通信。

在任務隊列系統框架中,任務處理者可以跨越不同的服務節點,可以動態地增加節點來增加系統的任務處理能力,非常適合高并發、需要橫向擴展的 Web 服務后臺。

## 什么是Celery?

Celery是基于Python語言的開源分布式任務調度模塊。

它有著簡明的 API,并且有豐富的擴展性,適合用于構建分布式的Web服務。

Celery的結構圖如下:

![Celery結構圖](/static/files/591/5989cee6e519f50ef7000031/99/images/d8bb8ef557143c77f6df9c203f4be2fb.png)

在上圖中,一共可以分為五個部分:

- application(任務生產者)

- celery beat(定時任務處觸發)

- broker(任務隊列)

- workers(任務處理者)

- result store(運行結果存儲)

下面,我們依次來了解這五個部分的作用:

**任務生產者 (task producer)**

任務生產者 (task producer) 負責產生計算任務,交給任務隊列去處理。

在 Celery 里,一段獨立的 Python 代碼、一段嵌入在 Django Web 服務里的一段請求處理邏輯,只要是調用了 Celery 提供的 API,產生任務并交給任務隊列處理的,我們都可以稱之為任務生產者。

**任務調度器 (celery beat)**

Celery beat 是一個任務調度器,它以獨立進程的形式存在。

Celery beat 進程會讀取配置文件的內容,周期性地將執行任務的請求發送給任務隊列。

Celery beat 是 Celery系統自帶的任務生產者。

系統管理員可以選擇關閉或者開啟 Celery beat。

同時在一個 Celery 系統中,只能存在一個Celery beat調度器。

**任務代理 (broker)**

任務代理方負責接受任務生產者發送過來的任務處理消息,存進隊列之后再進行調度,分發給任務消費方 (celery worker)。

因為任務處理是基于 message(消息) 的,所以我們一般選擇 RabbitMQ、Redis 等消息隊列或者數據庫作為 Celery 的 message broker。

**任務消費方 (celery worker)**

Celery worker 就是執行任務的一方,它負責接收任務處理中間方發來的任務處理請求,完成這些任務,并且返回任務處理的結果。

Celery worker 對應的就是操作系統中的一個進程。

Celery 支持分布式部署和橫向擴展,我們可以在多個節點增加 Celery worker 的數量來增加系統的高可用性。

在分布式系統中,我們也可以在不同節點上分配執行不同任務的 Celery worker 來達到模塊化的目的。

**結果保存**

Celery 支持任務處理完后將狀態信息和結果的保存,以供查詢。

Celery 內置支持 rpc, Django ORM,Redis,RabbitMQ 等方式來保存任務處理后的狀態信息。

在下一篇文章中,我們將會用一個簡答的Demo來對Celery有一個初步的了解。

0條評論

評論前請先登錄

登錄

注冊

發表回復

總結

以上是生活随笔為你收集整理的python celery应用场景_Celery使用背景与功能概要的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 射一射 | 99热com| 日韩夜夜操 | 久久久综合网 | 日韩精品影院 | 国产最新av | 青青草国产在线 | 中文字幕不卡在线观看 | 精品人妻一区二区乱码 | 善良的老师伦理bd中字 | 亚洲精品www | 亚洲黄a | 欧美福利视频一区 | 国语粗话呻吟对白对白 | 在线不卡视频 | www.自拍| 狂野欧美性猛交xxxx | 久久嫩| 韩国电影一区 | 国产男女自拍 | 天堂av在线中文 | 亚洲综合专区 | a视频在线免费观看 | 波多野结衣av在线免费观看 | 中文字幕1区2区 | 日韩精品成人免费观看视频 | 亚洲国产三区 | 天天爱天天爽 | 超碰丝袜 | 国产天堂av在线 | 欧美自拍偷拍一区 | 黄色av网站免费 | av一区三区| www.夜夜爽| 日韩欧美第一页 | 国产剧情在线一区 | 久久二| 欧美综合网站 | zoo性欧美| 欧美精产国品一二三 | www.自拍偷拍 | 久草五月天 | 免费看毛片的网站 | 亚洲经典av | 日本成人三级 | 一级α片免费看刺激高潮视频 | 激情小说av | 午夜影院h | 午夜精品久久久久久久91蜜桃 | 日韩电影第一页 | 男女羞羞的视频 | 中文字幕色 | wwwxxx欧美 | 国产精华一区二区三区 | 一区二区三区 日韩 | 尤果网福利视频在线观看 | 成人免费视频国产免费 | 精品欧美乱码久久久久久1区2区 | 午夜视频网站在线观看 | 国产伦精品一区二区三区免费迷 | 国产精品久久久无码一区 | 青青草香蕉 | 欧美福利一区二区 | 国产福利电影在线 | 日韩在线中文 | 一级片www | 国产在线xxxx | 成人香蕉视频在线观看 | 亚洲伦理中文字幕 | 免费的性爱视频 | 偷偷草| 中文精品一区二区三区 | 成人毛片基地 | av免费在线观看不卡 | 国内激情视频 | 伊人福利视频 | 国内偷拍一区二区 | 性欧美极品另类 | 精品午夜久久久 | 日日夜夜操操操 | 中文字幕一区不卡 | 美女被草出白浆 | 免费三级黄 | 人人cao | 久草视频在线资源 | 人人九九精品 | 国产美女91 | 精品国产三级片在线观看 | 一区二区三区免费高清视频 | 国产午夜视频在线观看 | 得得的爱在线视频 | 不卡免费av| 中文字幕人妻一区二区三区在线视频 | 国产精品高潮呻吟久久久 | 女同毛片一区二区三区 | 粉嫩av| 丁香婷婷深情五月亚洲 | 日本在线一 | 亚洲一区天堂 |