django和celery結合應用

2022-08-12 18:36:18 字數 3384 閱讀 9735

django+celery專案結構

-project_name

- __init__

.py -admin.py

-views.py

-modes.py

- tasks.py

#celery用來執行任務的檔案,task裡的任務由views函式裡去觸發

-urls.py

-views.py

-project_name

- __init__

.py      #初始化celery

- celery.py

#celery 定義例項

-settings.py   #用來配置redis或rabbitmq位址

-urls.py

-views.py

-wsgi.py

-templates

-static

-manager.py

- db.sqlite3

celery.py

from

__future__

import

absolute_import, unicode_literals

import

osfrom celery import

celery

#set the default django settings module for the 'celery' program.

os.environ.setdefault(

'django_settings_module

', '

project_name.settings

')    #這裡要寫專案名稱

project_name')

'django.conf:settings

', namespace='

celery

')  #這裡配置settings裡與celery相關配置的字首

from django_celery import tasks    #引入task

from celery.result import asyncresult

def

test_celery(request):

#這裡用來觸發tasks裡的任務

res =tasks.cmd_run.delay(

"ipconfig",)#

print

(res.get) #如果在此處直接get會變成同步

return httpresponse(res.task_id)    #獲取taskid

#獲取任務執行狀態返回給前端

]

啟動worker

celery -a wecaht worker -l info -p eventlet

pip3 install django-celery-

beat

##settings.py 裡註冊 django

-celery-

beat

'django_celery_beat',

]python manage.py migrate

d:\django

-project\wechat>

python manage.py migrate

operations to perform:

running migrations:

rendering model states... done

登入後台

啟動celery beat

celery -a project_name beat -l info -s django
每新增或修改乙個任務,celery beat都需要重啟一次,要不然新的配置不會被celery beat程序讀到

flask 工廠模式與celery結合

簡單介紹一下celery celery 是乙個非同步任務佇列。你可以使用它在你的應用上下文之外執行任務。總的想法就是你的應用程式可能需要執行任何消耗資源的任務都可以交給任務佇列,讓你的應用程式自由和快速地響應客戶端請求。官方文件 中文文件 flask 中使用 celery 別人寫的,大家可以參考著來...

django中使用celery 一

建立django專案celery demo,建立應用demo 在celery demo模組中建立celery.py模組,檔案目錄為 celery.py模組內容為 from celery import celery from django.conf import settings import os ...

celery實測之Django呼叫

1 新建並配置乙個celery檔案,需同setting在同一級。from celery import celery from django.conf import settings import os 為celery設定環境變數 os.environ.setdefault django settin...