celery 框架


celery 是一個基於分布式消息傳輸的異步任務隊列,它專注於實時處理,同時也支持任務調度。

Producer: 調用了celery提供的API,函數或者裝飾器而產生任務並交給 任務隊列處理的都是任務生產者。

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

Broker:消息代理,又稱消息中間件,接受任務生產者發送過來的任務消息,存進隊列再按序分發給任務消費方。celery目前支持RabbitMQ, Redis, MongoDB, Beanstalk, SQLAlchemy, Zookeeper 等作為消息代理,但適用於生產環境的只有RabbitMQ 和 Redis, 官方推薦RabbitMQ

Celery Worker: 執行任務的消費者,通常會在多台服務器運行多個消費者來提高執行效率。

Result backend: 任務處理完后保存狀態信息和結果,以供查詢。Celery默認已支持Redis,RabbitMQ,MongoDB, Django ORM,SQLAlchemy 等方式。

工作原理:
它的基本工作就是管理分配任務到不同的服務器,並且取得結果。至於說服務器之間是如何通信的?這個celery本身不能解決。所以,RabbitMQ作為一個消息隊列管理工具被引入到celery集成,負責處理服務器之間的通信任務。celery沒有消息存儲功能。他需要介質。比如RabbitMQ, Redis, MySQL, MongoDB都是可以的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM