Celery异步调度框架(二)与Django结合使用
配置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结合使用相关推荐
- 搜狗 workflow异步调度框架(二)HTTP客户端
1.避免进程提前终止 由于任务的启动是异步的,所以任务的执行和主线程的执行是并行的,如果不加任何的控制,那么当主线程执行完所有操作以后直接退出,并且导致整个进程的终止. WFFacilities::W ...
- 搜狗 workflow异步调度框架--1.基本介绍篇
1.workflow简介 按照workflow官方的README所述,Workflow是搜狗公司C++服务器引擎,编程范式.支撑搜狗几乎所有后端C++在线服务,包括所有搜索服务,云输入法,在线广告等, ...
- celery 停止任务_celery异步任务框架
目录 Celery 一.官方 二.Celery异步任务框架Celery架构图消息中间件任务执行单元任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包管理,结 ...
- celery的中文_celery异步任务框架
目录 Celery 一.官方 二.Celery异步任务框架Celery架构图消息中间件任务执行单元任务结果存储 三.使用场景 四.Celery的安装配置 五.两种celery任务结构:提倡用包管理,结 ...
- Django blog项目《二十五》:项目优化《1》使用celery异步任务和定时任务
celery异步异步任务处理 一.celery简介 celery 官方文档英文版:http://docs.celeryproject.org/en/latest/index.html 组件 任务Tas ...
- python消息队列celery_【干货分享】NTI任务管理之django+python篇celery异步任务使用...
阅读: 3,538 新浪微博的新鲜事推送如何实现?大规模的服务器如何实现Crontab管理?里面的秘密就在于消息队列.Celery是一个使用Python开发的分布式任务调度模块,是一个简单.灵活.可靠 ...
- 媲美celery的分布式调度框架funboost
最近项目中缺乏一款分布式框架,在github上闲逛时,找到了一款分布式调度框架.按照国惯例先上链接:https://github.com/ydf0509/funboost.该框架是由国人ydf开发的, ...
- 第十二章 Django框架
第十二章 Django框架 tcp/ip五层模型 应用层 传输层 网络层 数据链路层 物理层 socket : 套接字,位于应用层和传输层之间的虚拟层,是一组接口 c/s架构 ------> b ...
- Django通过celery 异步发送邮件 : django开发之天天生鲜项目知识总结【5】
这里初次学习celery,只简单讲解一下如何使用celery 异步发送邮件,在以后的总结中还会,多次提到celery,因为后面很多任务都需要用到celery执行任务,后面再专门针对celery做具体的 ...
最新文章
- 论一枚数据科学家的自我修养
- 顶级风投First Round Capital对创业者的30个建议
- http://www.appinn.com/bookmark-manager-chrome/
- 【DotNetMLLearn】.NET Core 人工智能系列-.NET Interactive环境介绍
- 老师“鬼话”全曝光!哈哈哈哈哈全国的老师都这样吗?
- non-aggregates cannot be initialized with initializer list
- 共轭方式怎么判断_怎样判断共轭双烯
- BZOJ.4727.[POI2017]Turysta(哈密顿路径/回路 竞赛图)
- 三菱plc pwm指令_三菱PLC常用指令汇总,含用法与注释
- 替换jar包中的class文件
- CSS3硬件加速 - GPU加速
- python pip、conda、windows CMD常用命令大全!
- 基于javaweb的校园外卖点餐系统(java+ssm+jsp+mysql)
- windows关机命令
- 安装微信小程序开发者工具
- android bitmap转图片_这是一份面向Android开发者的复习指南
- 线控转向 四轮转向控制 4WIS CarSim与Simulink联合
- 王劲首度解析景驰:我们是跑得最快的无人驾驶公司(内含独家视频)
- Android7.0下载Apk自动安装
- TPM分析笔记(十二)TPM PCR操作
热门文章
- centos7 nginx php5.4,详解CentOS7.0下Nginx+PHP5.4+MySQL5.5+Memcached+Redis的架构部署
- js 线段上某点的坐标_测绘测量中常用的坐标系
- 300plc与组态王mpi通讯_MPI(DP)-ETH以太网转换器使用手册
- python输出语句print i、j、k,python:在exec语句中获取打印输出
- mysql with
- linux 内核空间与用户空间
- opencv 霍夫直线检测
- 数据算法之冒泡排序(bubbleSort)的Java实现
- 信息安全完全参考手册之遵循标准、法规和法律(第三章)
- 你所熟知的CI/CD工具都是有哪些?