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 beattask.py
from celery.task import task # 加了這個裝飾器後等同於註冊該函式為task @task() def add(x, y): return x + yshell執行:
worker message:
若是只是一般執行add(1, 1)的話就是synctask而不是asynctask 而delay只是最懶人的用法 後續會提到apply_async等方法
訂閱:
張貼留言
(
Atom
)
技術提供:Blogger.
沒有留言 :
張貼留言