日期篩選

Django-celery 安裝.介紹及使用(1)

沒有留言

一、安裝
sudo apt-get install cerlery
pip install cerlery
easy_install cerlery django-cerlery
二、架設 settings.py
import djcelery
djcelery.setup_loader()
# 預設django為broker 
BROKER_URL = 'django://'
# 如果要把執行或是task相關紀錄存起來就一定要設定backend
CELERY_RESULT_BACKEND = 'djcelery.backends.database.DatabaseBackend'
# 如果要實作排程就要放
CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
# 記得設定celery時區,不然crontab會沒用
CELERY_TIMEZONE = 'Asia/Taipei'

...
INSTALLED_APPS = (
...
'djcelery',
'kombu.transport.django',
...
)
三、說明 Celery主要用於處理定期.延期.異步.retry,以web來說,為了不耽誤到client端或是server端的request 或是 response,則透過異步的方式讓工作在背景執行. 範例:當使用者寄送了一封驗證信或是電子報,而後台在作請求的時候必須做email驗證以及送發,若是一般request的話,則會鎖住使用者的畫面,等到response回來後才可以動作 這樣對於使用者體驗會有多多少少打折扣,更不用說如果今天做的是耗費大量時間的演算法處理了. 四、執行
# worker開始運作,設定log的level為一般信息皆顯示
$python manage.py celery worker --loglevel=info
# 開始beat,讓排程work起來
$python manage.py celery beat
task.py
from celery.task import task
# 加了這個裝飾器後等同於註冊該函式為task
@task()
def add(x, y):
    return x + y
shell執行:

worker message:

若是只是一般執行add(1, 1)的話就是synctask而不是asynctask 而delay只是最懶人的用法 後續會提到apply_async等方法

沒有留言 :

張貼留言

技術提供:Blogger.

Pages

FACEBOOK