配置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. php里进程创建和分析

    pcntl_fork()函数创建一个子进程,这个子进程仅PID(进程号) 和PPID(父进程号)与其父进程不同成功时,在父进程执行线程内返回产生的子进程的PID,在子进程执行线程内返回0.失败时,在 ...

  2. HTML学习笔记:1.基础概念

    ①HTML:Hypertext Markup Language,即超文本标记语言,文件由标记组成   ②HTML发展史 (几个重要节点): 1993(IETF):HTML 1.0 1995(W3C): ...

  3. python 面向对象终极进阶之开发流程

    好了,你现在会了面向对象的各种语法了,  但是你会发现很多同学都是学会了面向对象的语法,却依然写不出面向对象的程序,原因是什么呢?原因就是因为你还没掌握一门面向对象设计利器, 此刻有经验的人可能会想到 ...

  4. 微信小程序-获取地理位置

    近期公司使用微信小程序开发一套应用,涉及到使用小程序的获取地理位置接口,但是在使用测试过程中发现获取的经纬度偏差较大, 之后进行了一番搜索,终于找到了, 原文地址:http://blog.csdn.n ...

  5. springboot集成rabbitmq(实战)

    RabbitMQ简介RabbitMQ使用Erlang语言开发的开源消息队列系统,基于AMQP协议来实现(AMQP的主要特征是面向消息.队列.路由.可靠性.安全).支持多种客户端,如:Python.Ru ...

  6. java集合HashMap、HashTable、HashSet详解

    一.Set和Map关系 Set代表集合元素无序,集合元素不可重复的集合,Map代表一种由多个key-value组成的集合,map集合是set集合的扩展只是名称不同,对应如下 二.HashMap的工作原 ...

  7. Redis使用单进程单线程方式的优缺点分析

    [转] http://www.syyong.com/db/Redis-why-the-use-of-single-process-and-single-threaded-way-so-fast.htm ...

  8. 【Quartz】持久化到数据库【五】

      前言 我们做到这里已经对Quartz定时器组件已经是学会了基本的使用了.但是我们有没有想过任务开启之后万一断掉了,当机了我们怎么办,你是否还想继续执行原先的任务.我们普通的创建是把任务放在内存中存 ...

  9. 使用SimHash进行海量文本去重[转载]

    阅读目录 1. SimHash与传统hash函数的区别 2. SimHash算法思想 3. SimHash流程实现 4. SimHash签名距离计算 5. SimHash存储和索引 6. SimHas ...

  10. 《Spring Cloud与Docker微服务架构实战》配套代码

    不才写了本使用Spring Cloud玩转微服务架构的书,书名是<Spring Cloud与Docker微服务架构实战> - 周立,已于2017-01-12交稿.不少朋友想先看看源码,现将 ...