1. 程式人生 > >分布式任務隊列:Celery

分布式任務隊列:Celery

== 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