python任務調度模塊celery


python任務調度模塊celerycelery簡介Celery特點Celery工作流程圖celery安裝使用

python任務調度模塊celery

celery簡介

Celery是一個python開發的異步分布式任務調度模塊。
Celery本身並不提供消息服務,使用第三方服務,也就是borker來傳遞任務,一般使用rabbitMQ或者Redis。

Celery特點

  • 簡單:一單熟悉了celery的工作流程后,配置和使用還是比較簡單的。
  • 高可用:當任務執行失敗或執行過程中發生連接中斷,celery 會自動嘗試重新執行任務。
  • 快速:一個單進程的celery每分鍾可處理上百萬個任務。
  • 靈活: 幾乎celery的各個組件都可以被擴展及自定制。

Celery工作流程圖

這里寫圖片描述
這里寫圖片描述

celery安裝使用

安裝Celery模塊

pip install celery

Celery的默認broker是RabbitMQ,僅需配置一行

broker_url = 'amqp://guest:guest@localhost:5672//'

redis作為broker也可以。

安裝

pip install redis

配置
broker_url配置redis數據庫地址,格式為redis://:password@hostname:port/db_number。
backend配置任務結果存儲位置,將保存每個任務的執行結果。

app.conf.broker_url = 'redis://localhost:6379/0'
app.conf.result_backend = 'redis://localhost:6379/0'
port和db_number是可選項,默認情況下端口使用6379,db_number使用0。

示例
創建一個celery application定義任務列表,新建一個celery1.py文件

from celery import Celery
broker = "redis://118.24.18.158:6379/5"
backend = "redis://118.24.18.158:6379/6"
app = Celery("celery1", broker=broker, backend=backend)
@app.task
def add(x, y):
return x+y

啟動Celery Worker開始監聽並執行任務

celery -A celery1 worker --loglevel=info

調用任務

import time
from celery1 import add
re = add.delay(10, 20)
print(re)
print(re.status)
time.sleep(8)
print(re.status)
print(re.result)


免責聲明!

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



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