celery英文官方網站:www.celeryproject.org
中文網站:http://docs.jinkan.org/docs/celery/
celery
Celery 是一個簡單、靈活且可靠的,處理大量消息的
分布式系統
,并且提供維護這樣一個系統的必需工具。
專注于實時處理的任務隊列,同時也支持任務調度。
作用:
- 解決耗時操作:開一個新的進程,去操作耗時操作,不影響原有進程 定時操作,使
- List item
用celery定時執行
操作:
- 定義一個任務task,也就是一個python函數
- 將耗時任務存儲到隊列queue中
- 在一個新的進程中,負責執行隊列中的任務,worker
- broker:負責調度,將任務加到隊列中,在布置環境中使用redis
安裝包
pip install celery
pip install celery
-
with
-
redis
pip install django
-
celery
配置settings
將djcelery包加入到INSTALLED_APPS中
并添加以下代碼:
import
djcelery
djcelery
.
setup_loader
(
)
# 初始化所有的task
BROKER_URL
=
'redis://127.0.0.1:6379/0'
# 把所有的任務放在queue中,默認用0這個數據庫
CELERY_IMPORTS
=
(
'test1.task'
)
# 在test1這個應用下使用任務
在test1應用目錄下創建task.pty文件
import
time
from
celery
import
task
@task
def
show
(
)
:
print
(
'hello...'
)
time
.
sleep
(
5
)
print
(
'world...'
)
遷移,生成celery需要的數據表
此時不需要生成遷移,直接進行遷移
python manage
.
py migrate
啟動redis
sudo redis
-
server
/
etc
/
redis
/
redis
.
conf
啟動worker
python manage
.
py celery worker
-
-
loglevel
=
info
定義視圖,調用task
函數名.delay([參數])
from
task
import
*
def
celeryTest
(
request
)
:
show
.
delay
(
)
return
HttpResponse
(
'ok'
)
配置url
url
(
r
'^celerytest/$'
,
views
.
celeryTest
)
,
總結:
- 簡單:易使用和維護,不需要配置文件
- 高可用性:如果鏈接丟失或者失敗,客戶端會自動重試,并broker通過主/主或者主/從方式復制來提高可用性。
- 快速:單個celery進程每分鐘可處理數以百萬計的任務
- 靈活:celery幾乎所有的部分都可以擴展或者單獨使用。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
