您好,登錄后才能下訂單哦!
Celery為Django提供后臺執行以及定時執行功能。
一、安裝:
1、安裝依懶包:
tar xvf kombu-3.0.35.tar.gz cd kombu-3.0.35 /usr/local/python27/bin/python setup.py install
tar xvf billiard-3.3.0.23.tar.gz cd billiard-3.3.0.23 /usr/local/python27/bin/python setup.py install
2、安裝django-celery:
tar xvf django-celery-3.1.17.tar.gz cd django-celery-3.1.17 /usr/local/python27/bin/python setup.py install
二、配置整合Django:
settings 添加配置:
import djcelery djcelery.setup_loader() BROKER_URL = 'django://' CELERYBEAT_SCHEDULER = 'djcelery.schedulers.DatabaseScheduler'
installed_apps添加djcelery,kombu.transport.django
INSTALLED_APPS = ( 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.messages', 'django.contrib.staticfiles', 'DjangoUeditor', 'django_jinja', 'djcelery', 'kombu.transport.django', 'TestCelery', )
三、創建task
新建App:TestCelery,在該App下新建tasks.py文件:
from celery import task @task() def add(x, y): return x + y
四、啟動進程
在manage.py中加入:
import django django.setup()
不加的話celery執行task時會報錯
python manage.py celery worker --loglevel=info
五、測試:
python manage.py shell >>> from myapp.tasks import add >>> add.delay(2, 2)
六、測試定時任務:
啟動celerybeat:
python manage.py celery beat
在django admin后臺添中任務:
Name: 這一定期任務的注冊名
Task (registered): 可以選擇所有已經注冊的task之一, 例如前面的add function
Task (custom): task的全名, 例如myapp.tasks.add, 但最好還是用以上項
Enabled: 是否開啟這一定期任務
Interval: 定期任務的間隔時間, 例如每隔5分鐘
Crontab: 如果希望task在某一特定時間運行, 則使用Unix中的Crontab代替interval
Arguments: 用于傳參數到task中
Execution Options: 更高級的設置, 在此不詳細說明, 請查看celery官方文檔
celerybeat會把task發送到celery worker 中執行
暫時測試到這里!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。