Celery 是一個「自帶電池」的的任務隊列。它易於使用,因此你能夠無視其所解決問題的複雜程度而輕鬆入門。它遵守最佳實踐設計,因此你的產品能夠擴展,或與其餘語言集成,而且它自帶了在生產環境中運行這樣一個系統所需的工具和支持。html
在此教程中,你會了解使用 Celery 的最基礎部分。包括:python
Celery 須要一個發送和接收消息的解決方案,其一般以獨立服務形式出現, 稱爲 消息中間人 。redis
在此介紹redis數據庫 安裝數據庫請看另外一篇文章:https://www.cnblogs.com/wbdream/p/10581310.html數據庫
安裝celery:app
安裝celery接口: pip3 install celeryasync
應用:ide
首先你須要一個 Celery 實例,稱爲 Celery 應用或直接簡稱應用。既然這個實例用於你想在 Celery 中作一切事——好比建立任務、管理職程——的入口點,它必須能夠被其餘模塊導入。工具
在此教程中,你的一切都容納在單一模塊裏,對於更大的項目,你會想建立 獨立模塊 。ui
讓咱們建立 tasks.py :spa
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 ):