django+celery项目结构

- project_name- app01- __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_literalsimport osfrom celery import Celery# set the default Django settings module for the 'celery' program.

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'project_name.settings')    #这里要写项目名称app = Celery('project_name')

app.config_from_object('django.conf:settings', namespace='CELERY')   #这里配置settings里与celery相关配置的前缀# Load task modules from all registered Django app configs.

app.autodiscover_tasks()@app.task(bind=True)def debug_task(self):print('Request: {0!r}'.format(self.request))

project_name/__init__.py

from __future__ import absolute_import, unicode_literals# This will make sure the app is always imported when# Django starts so that shared_task will use this app.from .celery import app as celery_app__all__ = ['celery_app']

tasks.py

#!/usr/bin/env python
#-*-coding:utf-8-*-
from __future__ import absolute_import, unicode_literals
from celery import shared_task
import subprocess@shared_task
def add(x, y):return x + y@shared_task
def mul(x, y):return x * y@shared_task
def cmd_run(cmd):result = subprocess.Popen(cmd,shell=True,stdout=subprocess.PIPE,stderr=subprocess.PIPE)return result.stdout.read().decode("utf-8")

app01/views.py

from django.shortcuts import render,redirect,HttpResponse
from django_celery import tasks    #引入taskfrom 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

#获取任务执行状态返回给前端def task_res(request):  result = AsyncResult(id=task_id)  return HttpResponse(result.status)

app01/urls.py

from django.conf.urls import url,include
from django.contrib import admin
from django_celery import viewsurlpatterns = [url(r'^admin/', admin.site.urls),url(r'^test_celery/$',views.test_celery)
]

启动worker

celery -A wecaht worker -l info -P eventlet

django&celery 定时任务

pip3 install django-celery-beat##settings.py 里注册 django-celery-beat
INSTALLED_APPS = ['django_celery_beat',
]python manage.py migrateD:\django-project\wechat>python manage.py migrate
Operations to perform:Apply all migrations: auth, sessions, django_celery_beat, contenttypes, admin
Running migrations:Rendering model states... DONEApplying contenttypes.0001_initial... OKApplying auth.0001_initial... OKApplying admin.0001_initial... OKApplying admin.0002_logentry_remove_auto_add... OKApplying contenttypes.0002_remove_content_type_name... OKApplying auth.0002_alter_permission_name_max_length... OKApplying auth.0003_alter_user_email_max_length... OKApplying auth.0004_alter_user_username_opts... OKApplying auth.0005_alter_user_last_login_null... OKApplying auth.0006_require_contenttypes_0002... OKApplying auth.0007_alter_validators_add_error_messages... OKApplying django_celery_beat.0001_initial... OKApplying django_celery_beat.0002_auto_20161118_0346... OKApplying django_celery_beat.0003_auto_20161209_0049... OKApplying django_celery_beat.0004_auto_20170221_0000... OKApplying django_celery_beat.0005_add_solarschedule_events_choices... OKApplying django_celery_beat.0006_auto_20180210_1226... OKApplying sessions.0001_initial... OK

登录后台

启动celery beat

celery -A project_name beat -l info -S django

每添加或修改一个任务,celery beat都需要重启一次,要不然新的配置不会被celery beat进程读到

转载于:https://www.cnblogs.com/FRESHMANS/p/9050311.html

django和celery结合应用相关推荐

  1. 任务队列:celery快速入门及django中celery的用法

    文章目录 一.celey的简介 1.1 celery的工作机制 1.2 安装celery(5.2版本) 二.celery快速入门 2.1 选择broker 2.2 celery的简单使用 2.2.1 ...

  2. Django+redis+celery实现异步任务

    1 Django中的异步请求 Django Web中从一个http请求发起,到获得响应返回html页面的流程大致如下:http请求发起 -- http handling(request解析) -- u ...

  3. Django 中celery的使用

    1.django应用Celery django框架请求/响应的过程是同步的,框架本身无法实现异步响应. 但是我们在项目过程中会经常会遇到一些耗时的任务, 比如:发送邮件.发送短信.大数据统计等等,这些 ...

  4. Django配置celery执行异步任务和定时任务

    原生celery,非djcelery模块,所有演示均基于Django2.0 celery是一个基于python开发的简单.灵活且可靠的分布式任务队列框架,支持使用任务队列的方式在分布式的机器/进程/线 ...

  5. Django 使用celery任务队列的配置

    celery 情景:用户发起request,并等待response返回.在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验,比如发送邮件.手机验证码等. 使用 ...

  6. Django中celery配置总结

    情景: 用户发起request,并等待response返回.在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间, 造成不好的用户体验,比如发送邮件.手机验证码等. 使用celer ...

  7. Django集成celery实战小项目

    上一篇已经介绍了celery的基本知识,本篇以一个小项目为例,详细说明django框架如何集成celery进行开发. 本系列文章的开发环境: window 7 + python2.7 + pychar ...

  8. Django中Celery简介

    初识Celery: Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,可将一些耗时的任务放入该消息队列中处理,一些定时任务也可以放入队列中自动执行 ...

  9. django python3 异步_详解配置Django的Celery异步之路踩坑

    人生苦短,我用python. 看到这句话的时候,感觉可能确实是很深得人心,不过每每想学学,就又止步,年纪大了,感觉学什么东西都很慢,很难,精神啊注意力啊思维啊都跟不上.今天奶牛来分享自己今天踩的一个坑 ...

  10. Django通过celery 异步发送邮件 : django开发之天天生鲜项目知识总结【5】

    这里初次学习celery,只简单讲解一下如何使用celery 异步发送邮件,在以后的总结中还会,多次提到celery,因为后面很多任务都需要用到celery执行任务,后面再专门针对celery做具体的 ...

最新文章

  1. 理解 Activity.runOnUiThread
  2. 【2012百度之星/初赛下】C:度度熊的礼物
  3. cf807 c 二分好题
  4. nx set 怎么实现的原子性_正确地使用Redis的SETNX实现锁机制
  5. P3527-[POI2011]MET-Meteors【整体二分,树状数组】
  6. CENTOS利用Keepalived构建双主MySQL+双机热备
  7. 一文深入了解:分布式系统中的缓存架构
  8. python numpy和pandas做数据分析时去掉科学记数法显示
  9. Java 支付对接之微信/支付宝扫码支付(也就是H5支付)
  10. 亲爱的波特兰——CJ麦科勒姆告别信
  11. 武汉大学计算机学院期末考试时间,【通知公告】关于2018-2019学年第二学期期末考试工作安排的通知...
  12. 使用validate注解做校验以及自定义validate注解
  13. 2023年中职网络安全竞赛——数字取证调查(新版)attack解析(详细)
  14. Heart Rate Variability Analysis with the HRV Toolkit: Basic Time and Frequency Domain Measures/背景
  15. 将机械硬盘换成固态硬盘的装机过程
  16. 最短路计数(dp+最短路)
  17. 如何进行自媒体创业?你是否能把握住,短视频都有哪些变现方式?
  18. ABP框架—项目文件介绍(2)
  19. ui设计界面参数_参数化设计,可以更有效地设计用户界面
  20. 《痞子衡嵌入式半月刊》 第 28 期

热门文章

  1. 智能安全实验室-杀马(Defendio) 2.5.0.430 :自定义上报威胁
  2. vb导入数据到mysql_用VB程序导入与导出MySQL数据的有关问题(急)
  3. truncate table 与delete table区别
  4. java补码运算代码_计算机原码、补码、反码与java移位运算符(//)
  5. 【渝粤教育】国家开放大学2018年秋季 1301T病理生理学 参考试题
  6. HMM-MEMM-CRF
  7. 【Python实例第9讲】物种分布模型
  8. UED团队建设系列之前端开发工程师:职业技能与素质
  9. 随手练——O(n)解决无序数组排序后的相邻最大差值
  10. 剑指offer例题分享--6