43. Python celery簡介
阿新 • • 發佈:2017-12-20
python celeryCelery異步分布式
什麽是celery?
他是一個python開發的異步分布式任務調度模塊
celery本身不提供消息服務,使用第三方服務,也就是broker來傳遞任務,目前支持rabbitmq,redis,數據庫等等。
我們使用redis
連接URL的格式為:
redis://:password@hostname:port/db_number
例如:
BROKER_URL='redis://localhost:6379/0'
過程如圖示
在python裏面如果用到異步分布式,首先想到celery
安裝celery
pip install celery pip install redis #之前講過
在服務器上安裝redis服務器,並啟動redis
第一個簡單的例子:
[root@localhost celery]# cat lili.py #/usr/bin/env python #-*- coding:utf-8 -*- from celery import Celery broker="redis://192.168.48.131:6379/5" backend="redis://192.168.48.131:6379/6" app = Celery("lili", broker=broker, backend=backend) @app.task def add(x, y): return x+y
啟動:
# celery -A lili worker -l info
調用:
# cat demo2.py #!/usr/bin/python #-*- coding:utf-8 -*- from lili import add import time a = add.delay(10, 20) print (a) ##返回異步分布式的對象 print (type(a)) time.sleep(1) print (a.result) ##返回調用的值 print (a.status) ##返回狀態 print (a.get(timeout=3)) ##獲得值 print (a.ready()) #是否處理,返回 True 為處理完成
43. Python celery簡介