真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

Pythoncelery有什么用?如何使用?-創(chuàng)新互聯(lián)

這篇文章將為大家詳細(xì)講解有關(guān)Python celery有什么用?如何使用?,小編覺得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

景泰ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場景,ssl證書未來市場廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

celery簡介

celery是一個(gè)基于分布式消息傳輸?shù)漠惒饺蝿?wù)隊(duì)列,它專注于實(shí)時(shí)處理,同時(shí)也支持任務(wù)調(diào)度。它的執(zhí)行單元為任務(wù)(task),利用多線程,如Eventlet,gevent等,它們能被并發(fā)地執(zhí)行在單個(gè)或多個(gè)職程服務(wù)器(worker servers)上。任務(wù)能異步執(zhí)行(后臺運(yùn)行)或同步執(zhí)行(等待任務(wù)完成)。

在生產(chǎn)系統(tǒng)中,celery能夠一天處理上百萬的任務(wù)。它的完整架構(gòu)圖如下:

組件介紹:

  • Producer:調(diào)用了Celery提供的API、函數(shù)或者裝飾器而產(chǎn)生任務(wù)并交給任務(wù)隊(duì)列處理的都是任務(wù)生產(chǎn)者。
  • Celery Beat:任務(wù)調(diào)度器,Beat進(jìn)程會讀取配置文件的內(nèi)容,周期性地將配置中到期需要執(zhí)行的任務(wù)發(fā)送給任務(wù)隊(duì)列。
  • Broker:消息代理,又稱消息中間件,接受任務(wù)生產(chǎn)者發(fā)送過來的任務(wù)消息,存進(jìn)隊(duì)列再按序分發(fā)給任務(wù)消費(fèi)方(通常是消息隊(duì)列或者數(shù)據(jù)庫)。Celery目前支持RabbitMQ、Redis、MongoDB、Beanstalk、SQLAlchemy、Zookeeper等作為消息代理,但適用于生產(chǎn)環(huán)境的只有RabbitMQ和Redis, 官方推薦 RabbitMQ。
  • Celery Worker:執(zhí)行任務(wù)的消費(fèi)者,通常會在多臺服務(wù)器運(yùn)行多個(gè)消費(fèi)者來提高執(zhí)行效率。
  • Result Backend:任務(wù)處理完后保存狀態(tài)信息和結(jié)果,以供查詢。Celery默認(rèn)已支持Redis、RabbitMQ、MongoDB、Django ORM、SQLAlchemy等方式。
     

工作原理

它的基本工作就是管理分配任務(wù)到不同的服務(wù)器,并且取得結(jié)果。至于說服務(wù)器之間是如何進(jìn)行通信的?這個(gè)Celery本身不能解決。所以,RabbitMQ作為一個(gè)消息隊(duì)列管理工具被引入到和Celery集成,負(fù)責(zé)處理服務(wù)器之間的通信任務(wù)。和rabbitmq的關(guān)系只是在于,celery沒有消息存儲功能,他需要介質(zhì),比如rabbitmq、redis、mysql、mongodb 都是可以的。推薦使用rabbitmq,他的速度和可用性都很高。

Celery安裝及使用

1、安裝celery

pip install celery

2、查看完整可用命令選項(xiàng)

celery worker --help

3、創(chuàng)建一個(gè)工程項(xiàng)目project,然后再項(xiàng)目內(nèi)創(chuàng)建一個(gè)celery_tasks異步任務(wù)列表。如圖:

4、首先是celery_tasks異步任務(wù)主程序main.py,代碼如下:

from celery import Celery
# 生成celery應(yīng)用
celery_app = Celery("caicai")
# 加載配置文件
celery_app.config_from_object('celery_tasks.config')
# 注冊任務(wù)
celery_app.autodiscover_tasks(['celery_tasks.email']) # 注意:傳遞的參數(shù)是任務(wù)列表

本文名稱:Pythoncelery有什么用?如何使用?-創(chuàng)新互聯(lián)
文章出自:http://weahome.cn/article/dojgpj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部