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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Celery定时任务异步任务

發布時間:2025/3/21 编程问答 62 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Celery定时任务异步任务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

celery定時任務

Celery 是一個強大的分布式任務隊列,它可以讓任務的執行完全脫離主程序,甚至可以被分配到其他主機上運行。我們通常使用它來實現異步任務( async task )和定時任務( crontab )。 異步任務比如是發送郵件、或者文件上傳, 圖像處理等等一些比較耗時的操作 ,定時任務是需要在特定時間執行的任務。它的架構組成如下圖:

任務隊列
任務隊列是一種跨線程、跨機器工作的一種機制.
任務隊列中包含稱作任務的工作單元。有專門的工作進程持續不斷的監視任務隊列,并從中獲得新的任務并處理.

任務模塊
包含異步任務和定時任務。其中,異步任務通常在業務邏輯中被觸發并發往任務隊列,而定時任務由 Celery Beat 進程周期性地將任務發往任務隊列。

消息中間件 Broker
Broker ,即為任務調度隊列,接收任務生產者發來的消息(即任務),將任務存入隊列。 Celery 本身不提供隊列服務,官方推薦使用 RabbitMQ 和 Redis 等。

任務執行單元 Worker
Worker 是執行任務的處理單元,它實時監控消息隊列,獲取隊列中調度的任務,并執行它。

任務結果存儲 Backend
Backend 用于存儲任務的執行結果,以供查詢。同消息中間件一樣,存儲也可使用 RabbitMQ, Redis 和 MongoDB 等。

Celery Beat
任務調度器,Beat進程會讀取配置文件的內容,周期性地將配置中到期需要執行的任務發送給任務隊列

使用 Celery 實現異步任務的步驟:
(1) 創建一個 Celery 實例
(2) 啟動 Celery Worker ,通過delay() 或 apply_async()(delay 方法封裝了 apply_async, apply_async支持更多的參數 ) 將任務發布到broker
(3) 應用程序調用異步任務
(4)存儲結果 (發布的任務需要return才會有結果,否則為空)

使用 Celery 實現定時任務的步驟:
(1) 創建一個 Celery 實例
(2) 配置文件中配置任務 ,發布任務 celery A xxx beat
(3) 啟動 Celery Worker
(4) 存儲結果

Celery使用詳情鏈接于此

總結

以上是生活随笔為你收集整理的Celery定时任务异步任务的全部內容,希望文章能夠幫你解決所遇到的問題。

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