配置Celery与Django结合

需要安装的插件

# 用于在Django中执行任务
pip install django-celery-beat
# 这个是把任务执行结果保存到django-orm中也就是数据库中的插件
pip install django-celery-results
# 集成到Django admin中的Celery管理插件
pip install django-celery-admin

创建celery.py文件

在settings.py同级目录下创建celery.py文件,用于创建celery实例

这里设置环境变量可以有另外一种非硬编码的方式

修改__init__.py文件

修改settings.py文件

创建任务

我这里新建了一个app叫做mytasks,其实你在任意现有的app下面建立tasks.py文件都可以。在settings.py文件中的INSTALLED_APPS中把我新建的mytasks安装进来。

调度任务

在mysite这个APP中调用任务

启动worker和Django

进入到项目目录也就是和manage.py的同级目录,命令中写的DjangoDemo是项目名称。为什么写这个名字?其实和之前启动worker是一样的,因为在DjangoDemo中有一个叫做celery.py的文件,如果不叫这个文件就需要DjangoDemo.文件来指定Celery的APP入口文件。

启动Django进行调用

使用Django数据库保存执行结果

修改settings.py文件

再次去调用之前的URL你就会发现数据库有结果,这意味着你以后可以通过task_id从数据库中查询结果。

配置定时任务

在配置文件中写定时任务

启动worker

启动beat服务

在worker上查看结果

其实这里可以看出我这里根本没有启动Django或者说这里跟Django没有什么关系。因为Celery本身也不依赖Django.

通过Web形式配置定时任务

这种形式就需要用到Django了

这里用到了一个新的APP也就是之前需要安装的django_celery_beat

做数据迁移操作

启动Django并打开admin后台

Crontabs就是做计划任务的
Intervals是简单的定时任务,比如每个几秒或者几分钟这种周期性任务
Periodic tasks要执行的任务在这里配置

添加任务

配置好之后启动worker

启动beat服务,这里需要增加一个参数函数是使用数据库中的任务调度配置

celery -A DjangoDemo beat -l info --scheduler django_celery_beat.schedulers:DatabaseScheduler

在worker中查看结果

需要注意的是每次修改数据库的定时任务执行配置你都需要重启beat服务,否则它无法感知这个变化。

监控

这里就用到Flower了,这个flower可以安装到其他机器,我这里就安装到其他服务器上然后运行centos 7默认的也是Python2.7 我自己安装了Python3.7 所以我进入到编译安装后的目录里/usr/local/python3/bin中,然后pip3 install flower安装完毕后运行。

然后我在笔记本上启动一个worker

打开flower的界面

通过命令调用一次任务

Celery异步调度框架(二)与Django结合使用的更多相关文章

  1. Celery异步调度框架(一)基本使用

    介绍 之前部门开发一个项目我们需要实现一个定时任务用于收集每天DUBBO接口.域名以及TOMCAT(核心应用)的访问量,这个后面的逻辑就是使用定时任务去ES接口抓取数据存储在数据库中然后前台进行展示. ...

  2. celery异步任务框架

    目录 Celery 一.官方 二.Celery异步任务框架 Celery架构图 消息中间件 任务执行单元 任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包 ...

  3. Celery异步任务队列/周期任务+ RabbitMQ + Django

    一.Celery介绍和基本使用  Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务,就可以考虑使用celer ...

  4. celery异步消息处理框架

    Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...

  5. celery 分布式异步任务框架(celery简单使用、celery多任务结构、celery定时任务、celery计划任务、celery在Django项目中使用Python脚本调用Django环境)

    一.celery简介: Celery 是一个强大的 分布式任务队列 的 异步处理框架,它可以让任务的执行完全脱离主程序,甚至可以被分配到其他主机上运行.我们通常使用它来实现异步任务(async tas ...

  6. 异步任务利器Celery(二)在django项目中使用Celery

    Celery 4.0支持django1.8及以上的版本,低于1.8的项目使用Celery 3.1. 一个django项目的组织如下: - proj/ - manage.py - proj/ - __i ...

  7. Django --- celery异步任务与RabbitMQ模块

    一 RabbitMQ 和 celery 1 celery Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理, 如果你的业务场景中需要用到异步任务, ...

  8. Django使用Celery异步任务队列

    1  Celery简介 Celery是异步任务队列,可以独立于主进程运行,在主进程退出后,也不影响队列中的任务执行. 任务执行异常退出,重新启动后,会继续执行队列中的其他任务,同时可以缓存停止期间接收 ...

  9. Django商城项目笔记No.6用户部分-注册接口-短信验证码实现celery异步

    Django商城项目笔记No.4用户部分-注册接口-短信验证码实现celery异步 接上一篇,如何解决前后端请求跨域问题? 首先想一下,为什么图片验证码请求的也是后端的api.meiduo.site: ...

随机推荐

  1. 学习了解 Exchanger - 实现生产者消费者模型

    例子很简单 Exchanger可以理解为消息队列或者说是一个通信管道,从一边拿到消息,另外一边进行消费. 不过这个是同步实现的,消费者在exchange之前,生产者一直处于等待状态,而不是一直生产. ...

  2. Java数组的复制全解

    1.将一个基本数据类型数组的引用赋值给另一个数组 public class Array_copy { int[] array1=new int[]{1,2,3,4,5,6}; int[] array2 ...

  3. ScalaPB(3): gRPC streaming

    接着上期讨论的gRPC unary服务我们跟着介绍gRPC streaming,包括: Server-Streaming, Client-Streaming及Bidirectional-Streami ...

  4. java内部类(转)

    转自:http://www.cnblogs.com/nerxious/archive/2013/01/24/2875649.html 内部类不是很好理解,但说白了其实也就是一个类中还包含着另外一个类 ...

  5. .NET面试常考算法

    1.求质数    质数也成为素数,质数就是这个数除了1和他本身两个因数以外,没有其他因数的数,叫做质数,和他相反的是合数,    就是除了1和他本身两个因数以外,还友其他因数的数叫做合数. 1 nam ...

  6. MySQL,简单了解下、

    第一章 数据备份与导入导出 1.1.备份基本概念介绍 1.2.mysqldump详解 1.3.mydumper浅析 1.4.MySQL物理备份基本操作 1.5.了解mysqlpump工具 1.6.数据 ...

  7. ViewDragHelper实战 自己打造Drawerlayout

    转载请标明出处: http://blog.csdn.net/lmj623565791/article/details/47396187: 本文出自:[张鸿洋的博客] 一.概述 中间拖了蛮长时间了,在上 ...

  8. Java系列1 -- 浅谈面向对象

    也许每一个计算机专业的人,在大学学习java的时候,老师开始时都会说这么一句话,"Java是一门面向对象的语言".那么面向对象到底是什么,他有什么好处,或者他比其他流行的语言C/C ...

  9. Windows10 使用docker toolbox安装docker

    一.介绍 Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化.容器是完全使用沙箱机制,相互之间 ...

  10. win10想开测试模式,提示“设置元素数据时出错

    系统中按WIN键,搜索栏输入'CMD',右键点击找到的cmd.exe,选择'以管理员身份运行'.输入:"bcdedit -set loadoptions DDISABLE_INTEGRITY ...