Celery 是一個“自帶電池”的的任務隊列。它易於使用,所以你可以無視其所解決問題的復雜程度而輕松入門。它遵照最佳實踐設計,所以你的產品可以擴展,或與其他語言集成,並且它自帶了在生產環境中運行這樣一個系統所需的工具和支持。
在此教程中,你會了解使用 Celery 的最基礎部分。包括:
- 選擇和安裝消息傳輸方式(中間人)。
- 安裝 Celery 並創建第一個任務
- 運行職程並調用任務。
- 追蹤任務在不同狀態間的遷移,並檢視返回值。
選擇中間人
Celery 需要一個發送和接收消息的解決方案,其通常以獨立服務形式出現, 稱為 消息中間人 。
在此介紹redis數據庫 安裝數據庫請看另一篇文章:https://www.cnblogs.com/wbdream/p/10581310.html
安裝celery:
安裝celery接口: pip3 install celery
應用:
首先你需要一個 Celery 實例,稱為 Celery 應用或直接簡稱應用。既然這個實例用於你想在 Celery 中做一切事——比如創建任務、管理職程——的入口點,它必須可以被其他模塊導入。
在此教程中,你的一切都容納在單一模塊里,對於更大的項目,你會想創建 獨立模塊 。
讓我們創建 tasks.py :
from celery import Celery app = Celery('tasks', broker='redis://:password@localhost//') @app.task def add(x, y): return x + y
Celery 的第一個參數是當前模塊的名稱,這個參數是必須的,這樣的話名稱可以自動生成。第二個參數是中間人關鍵字參數,指定你所使用的消息中間人的 URL,此處使用了 RabbitMQ,也是默認的選項。更多可選的中間人見上面的 選擇中間人 一節。例如,對於 RabbitMQ 你可以寫 amqp://localhost ,而對於 Redis 你可以寫 redis://localhost .
你現在可以用 worker 參數執行我們的程序:
$ celery -A tasks worker -l debug # -l debug 日志級別
調用任務
你可以用 delay() 方法來調用任務。
這是 apply_async() 方法的快捷方式,該方法允許你更好地控制任務執行(見 Calling Tasks ):