在django中使用celery非同步任務和定時任務

2022-06-16 06:36:12 字數 3628 閱讀 8479

在django中使用

celery

django版本

1.9.8

pip install django-celery

redis要指定版本,預設的

3.x版本有問題

pip uninstall redis

pip install redis==2.10.6

建立django的

,並配置執行起來,作為

celery

的測試應用

將celery_course這個

拖入這個集合資料夾中

把celery_course加入

settings.py

配置中

定義views這個檢視

#執行非同步任務

定義url

#課程機構首頁

url(r'

^do/$

', doview.as_view(), name="do"

),]啟動django應用,訪問

python manage.py runserver 0.0.0.0:8000

能正常訪問,說明django配置沒問題

接下來配置celery相關的內容

定義任務tasks.py

celery_course/tasks.py

#

_*_ coding:utf-8 _*_

#__author__ == 'jack'

import

time

from celery.task import

task

class

coursetask(task):

name = '

celery-course-task

'def run(self, *args, **kwargs):

print

'start celery_course task

'time.sleep(5)

print

'args={}, kwargs={}

'.format(args, kwargs)

print

'end course task

'

配置celery

mxonline/celeryconfig.py

#

_*_ coding:utf-8 _*_

#__author__ == 'jack'

import

djcelery

from datetime import

timedelta

djcelery.setup_loader()

celery_imports =(

'celery_course.tasks',

)celery_queues =,

'work_queue':

}#預設佇列

celery_default_queue = '

work_queue'#

有些情況可以防止死鎖

celeryd_force_execv =true

#設定併發的worker數量

celeryd_concurrency = 4

#允許重試

celery_acks_late =true

#每個worker最多執行100個任務被銷毀,可以防止記憶體洩露

celeryd_max_tasks_per_child = 100

#單個任務的最大執行時間

celeryd_task_time_limit = 12 * 30

#配置定時任務

celerybeat_schedule =}}

將celery和

django

聯絡起來,修改

settings.py

配置加入

匯入celeryconfig配置

#

匯入celery相關的配置

啟動django

啟動worker

啟動beat定時任務

(mxonline) d:\python\mxonline>python manage.py celery beat --loglevel=info

在Django中使用DISTINCT

有時候想用distinct去掉queryset中的重複項,看django文章中是這麼說的 author.objects.distinct entry.objects.order by pub date distinct pub date entry.objects.order by blog dis...

在django中使用logging

django中似乎沒有專門支援logging的module。想在自己開發程式中使用一下log功能,記錄訪問情況,和輸入debug的一些資訊。於是google到一段 使用的python的標準庫logging,目前工作還算正常.url import logging import threading fr...

在Django中使用group by

在django中怎樣使用group by語句呢?找了很多資料,都沒有看到好的,在這裡分享兩種方法給大家 首先,我們先建乙個簡單的模型。class book models.model name models.charfield u 書名 max length 255,db index true aut...