配置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的界面

通过命令调用一次任务

转载于:https://www.cnblogs.com/rexcheny/p/10341784.html

Celery异步调度框架(二)与Django结合使用相关推荐

  1. 搜狗 workflow异步调度框架(二)HTTP客户端

    1.避免进程提前终止 由于任务的启动是异步的,所以任务的执行和主线程的执行是并行的,如果不加任何的控制,那么当主线程执行完所有操作以后直接退出,并且导致整个进程的终止. WFFacilities::W ...

  2. 搜狗 workflow异步调度框架--1.基本介绍篇

    1.workflow简介 按照workflow官方的README所述,Workflow是搜狗公司C++服务器引擎,编程范式.支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等, ...

  3. celery 停止任务_celery异步任务框架

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

  4. celery的中文_celery异步任务框架

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

  5. Django blog项目《二十五》:项目优化《1》使用celery异步任务和定时任务

    celery异步异步任务处理 一.celery简介 celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html 组件 任务Tas ...

  6. python消息队列celery_【干货分享】NTI任务管理之django+python篇celery异步任务使用...

    阅读: 3,538 新浪微博的新鲜事推送如何实现?大规模的服务器如何实现Crontab管理?里面的秘密就在于消息队列.Celery是一个使用Python开发的分布式任务调度模块,是一个简单.灵活.可靠 ...

  7. 媲美celery的分布式调度框架funboost

    最近项目中缺乏一款分布式框架,在github上闲逛时,找到了一款分布式调度框架.按照国惯例先上链接:https://github.com/ydf0509/funboost.该框架是由国人ydf开发的, ...

  8. 第十二章 Django框架

    第十二章 Django框架 tcp/ip五层模型 应用层 传输层 网络层 数据链路层 物理层 socket : 套接字,位于应用层和传输层之间的虚拟层,是一组接口 c/s架构 ------> b ...

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

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

最新文章

  1. 论一枚数据科学家的自我修养
  2. 顶级风投First Round Capital对创业者的30个建议
  3. http://www.appinn.com/bookmark-manager-chrome/
  4. 【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍
  5. 老师“鬼话”全曝光!哈哈哈哈哈全国的老师都这样吗?
  6. non-aggregates cannot be initialized with initializer list
  7. 共轭方式怎么判断_怎样判断共轭双烯
  8. BZOJ.4727.[POI2017]Turysta(哈密顿路径/回路 竞赛图)
  9. 三菱plc pwm指令_三菱PLC常用指令汇总,含用法与注释
  10. 替换jar包中的class文件
  11. CSS3硬件加速 - GPU加速
  12. python pip、conda、windows CMD常用命令大全!
  13. 基于javaweb的校园外卖点餐系统(java+ssm+jsp+mysql)
  14. windows关机命令
  15. 安装微信小程序开发者工具
  16. android bitmap转图片_这是一份面向Android开发者的复习指南
  17. 线控转向 四轮转向控制 4WIS CarSim与Simulink联合
  18. 王劲首度解析景驰:我们是跑得最快的无人驾驶公司(内含独家视频)
  19. Android7.0下载Apk自动安装
  20. TPM分析笔记(十二)TPM PCR操作

热门文章

  1. centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
  2. js 线段上某点的坐标_测绘测量中常用的坐标系
  3. 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
  4. python输出语句print i、j、k,python:在exec语句中获取打印输出
  5. mysql with
  6. linux 内核空间与用户空间
  7. opencv 霍夫直线检测
  8. 数据算法之冒泡排序(bubbleSort)的Java实现
  9. 信息安全完全参考手册之遵循标准、法规和法律(第三章)
  10. 你所熟知的CI/CD工具都是有哪些?