分布式任務隊列:Celery
阿新 • • 發佈:2017-12-21
== backend localhost blog 分布 關於 com edi 存儲
一、Celery 安裝與應用
關於 Celery 的內容,先依次看如下兩篇文章,讓你有個了解:
http://blog.csdn.net/happyanger6/article/details/51404837
https://www.liaoxuefeng.com/article/00137760323922531a8582c08814fb09e9930cede45e3cc000
1、安裝 Celery 和 Redis
pip install celery # 這裏我的 python 版本是 python2.7 ,如果是 2.6 的版本,請使用 pip install celery==3.0 來安裝
pip install redis # redis 作為中間人,用於接收和發送消息
2、編寫一個 celery 應用程序,用來處理任務
[root@localhost ~]# cat task.py #!/usr/bin/env python #-*- coding: utf8 -*- from celery import Celery
app = Celery("task", broker="redis://127.0.0.1:6379/5", backend="redis://127.0.0.1:6379/6") # 啟動一個Celery實例,第一個參數是本模塊的名字,第二個參數用於指定中間人的URL,第三個參數用於存儲任務的處理結果,5和6表示使用redis的第五和第六個庫
@app.task # 添加一個程序,這個程序用來處理用戶發過來的任務 def add(x, y): # 定義程序,這裏我就定義一個加法運算的程序 return x+y
3、啟動 Celery 處理任務
[root@localhost ~]# celery -A task worker --loglevel=info # -A參數用於指定程序,worker表示在後臺運行,--loglevel表示運行的日誌等級
4、發送任務給 Celery 進行處理
In [1]: from task import add In [2]: add.delay(2, 3) # 相當於執行了add()函數,執行後的結果只能在celery控制臺看到 Out[2]: <AsyncResult: 6e5b23d6-f3ba-48ed-8007-d41520830410> In [3]: add.delay(5, 10) Out[3]: <AsyncResult: f5e51094-af6c-447c-ae6e-e07b02ae6983>
二、Celery 多實例
分布式任務隊列:Celery