參考文獻python
要求python django
django 服務器
django-celery
異步
celery
spa
實現code
setting.py:
server
import djcelery djcelery.setup_loader() BROKER_URL = 'django://' ... INSTALLED_APPS = ( ... 'djcelery', 'kombu.transport.django', ... ) # 如下的事爲了定時任務使用 from datetime import timedelta CELERYBEAT_SCHEDULE = { 'add-every-1-minutes': { 'task': 'core.tasks.crowd_engine', 'schedule': timedelta(minutes=1), }, }
tasks.pyblog
from celery import task @task() def add(x, y): return x + y
啓動 先啓動項目: python manage.py runserver(實踐證實 不啓動也是沒有干係的 應爲是單獨的服務器嘛)get
在啓動worker :(異步任務使用)同步
export C_FORCE_ROOT="true"(先執行這步,在去啓動worker)
python manage.py celery worker --loglevel=info
在啓動按期任務:(按期任務是 定時給worker分配任務,因此說按期任務是要在啓動異步任務的前提下才能使用)
python manage.py celery beat
總結:
celery 和Django的信號的區別
celery的異步的,信號是同步的