Django 2.1.7 Celery 4.3.0 Periodic Tasks 周期性任务调度
原文链接:Django 2.1.7 Celery 4.3.0 Periodic Tasks 周期性任务调度
相关篇章:
- Django 2.1.7 Celery 4.3.0 示例,解决Task handler raised error: ValueError('not enough values to unp...
- Django 2.1.7 集成Celery 4.3.0 从介绍到入门
- Django 2.1.7 Celery 4.3.0 配置
- Django 2.1.7 Celery 4.3.0 在项目中使用Celery
- Django 2.1.7 Celery 4.3.0 调用任务(Calling Task)
- Django 2.1.7 Celery 4.3.0 signatures 任务签名 以及 Primitives 任务执行流程 group 、chain
- Django 2.1.7 Celery 4.3.0 Routing 任务队列路由功能
任务调度器 beat
celery beat是一个调度器,它可以周期内指定某个worker来执行某个任务。如果我们想周期执行某个任务需要增加beat_schedule配置信息.
在celeryconfig.py增加调度内容
# 设置结果存储
CELERY_RESULT_BACKEND = 'redis://127.0.0.1:6379/9'# 设置代理人broker
BROKER_URL = 'redis://127.0.0.1:6379/8'# 配置任务路由
CELERY_ROUTES=({'celery_tasks.tasks.my_task5': {'queue': 'queue1'},'celery_tasks.tasks.my_task6': {'queue': 'queue1'},'celery_tasks.tasks.my_task7': {'queue': 'queue2'},},
)# 配置周期性任务, 或者定时任务
CELERYBEAT_SCHEDULE = {'every-5-seconds':{'task': 'celery_tasks.tasks.my_task1','schedule': 5.0,'args': (10, 20),}
}
tasks.py模块内容如下:
from celery_tasks.celery import app as celery_app# 设置周期性任务
@celery_app.task
def my_task1(a, b):print("my_task1任务正在执行....")return a + b@celery_app.task
def my_task2(a, b):print("my_task2任务正在执行....")return a + b@celery_app.task
def my_task3(a, b):print("my_task3任务正在执行....")return a + b@celery_app.task
def my_task4(a, b):print("my_task3任务正在执行....")return a + b@celery_app.task
def my_task5():print("my_task5任务正在执行....")@celery_app.task
def my_task6():print("my_task6任务正在执行....")@celery_app.task
def my_task7():print("my_task7任务正在执行....")
启动woker处理周期性任务:
启动周期性任务是无法在windows上运行的,我在Centos7上启动,只要能够访问作为broker的redis,那么就可以执行任务。
celery -A celery_tasks worker -l info --beat
启动日志如下:
当启动了之后,每隔5秒就执行一次my_task1,如下:
配置cron任务
如果我们想指定在某天某时某分某秒执行某个任务,可以执行cron任务, 增加配置信息如下:
from celery.schedules import crontab# 配置周期性任务, 或者定时任务
CELERYBEAT_SCHEDULE = {'every-5-seconds':{'task': 'celery_tasks.tasks.my_task1','schedule': 5.0,'args': (10, 20),},'add-every-monday-morning': {'task': 'celery_tasks.tasks.my_task1','schedule': crontab(hour=7, minute=30, day_of_week=1),'args': (16, 16),},
}
crontab例子: http://docs.celeryproject.org/en/latest/userguide/periodic-tasks.html
开启一个celery beat服务:
celery -A celery_tasks worker -l info --beat
celery需要保存上次任务运行的时间在数据文件中,文件在当前目录下名字叫celerybeat-schedule.
beat需要访问此文件则执行以下命令:
celery -A celery_tasks beat -s celerybeat-schedule
Django 2.1.7 Celery 4.3.0 Periodic Tasks 周期性任务调度相关推荐
- Django使用supervisor管理celery和uwsgi实践记录 uwsgi BACKOFF Exited too quickly (process log may have details)
Django使用supervisor管理celery和uwsgi实践记录 安装下载supervisor不用多说. 直接上配置文件: vir_path标识虚拟环境路径 pro_path标识项目路径 全部 ...
- django 1.11.6—— Celery
https://segmentfault.com/a/1190000008022050 1. 环境 python==3.6djang==1.11.6 # 1.8, 1.9, 1.10应该都没问题cel ...
- 项目ITP(五) spring4.0 整合 Quartz 实现任务调度
2014-05-16 22:51 by Jeff Li 前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用. 然后须要的是 上课前20分钟 .幸好在帮带我的学长做 p2p ...
- Django完成异步工具——celery
情景:用户发起request,并等待response返回.在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验,比如发送邮件.手机验证码等 使用celery后, ...
- Debian+Django+uWsgi+nginx+mysql+celery
下载系统各种依赖 nano /etc/apt/sources.list 在Debian中使用apt-get安装软件包时经常会提示让你插入netinst的光盘: Media change: please ...
- Django从1.8升级到2.0注意事项
2019独角兽企业重金招聘Python工程师标准>>> 我公司从2015年开发自动化部署平台,当时选用的开发框架是Django1.8版本.这两年多来,基于其上,很好的满足了我们的开发 ...
- Django运行报错Invalid HTTP_HOST header: ‘0.0.0.0:8000‘. You may need to add ‘0.0.0.0‘ to ALLOWED_HOSTS.
用python manage.py runserver 0.0.0.0:8000命令运行django后,然后通过浏览器访问服务器网址运行的8000端口,出现访问错误报错. 报错为: 报错原因: 刚接触 ...
- django mysql5.7_GitHub - qiubiteme/DjangoBloger: 一个Django2.0+mysql57,实现的响应式博客
项目背景介绍,这是一个简单的博客项目, 在windows10环境下开发 基于python3.6.5 Django2.0 mysql5.7开发 计划后续开发为一个前后分离,现在简单的部署使用 部署环境 ...
- django 快速实现文件上传(django2.0)
django2.0 快速实现文件上传 本操作环境: 虚拟环境:django2.0 python3.5(应该python3.6都可以使用) window10 1.创建项目与应用(项目和应用都是自己制定的 ...
- Django+小程序:24小时从0到1开发阴阳师小程序
点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 0.序 玩阴阳师的肝帝们都知道,每天早上5点和下午6点会刷新两次封印任务,每次做任务时最蛋 ...
最新文章
- JVM(一) ---JVM的数据模型
- 注册不上zookeeper无报错_Zookeeper 跨区高可用方案
- 相对于硬件计算机软件就是,计算机的软件是将解决问题的方法,软件是相对于硬件来说的...
- go和java线程,Go的多线程和pthread或Java线程有什么区别?
- 关于linux防火墙
- JUnit:在参数化测试中命名单个测试用例
- 刘汝佳训练指南——数论专题知识点总结:
- cardsui-for-android
- silverlight(一.安装和新建项目)
- 继承关系 c# 1613704854
- L1-024. 后天-PAT团体程序设计天梯赛GPLT
- 用粉红噪声煲机_白噪音|煲机白噪音粉红噪音mp3下载 - 121下载站
- 计算机大赛鼓励语录,比赛加油鼓励经典语录
- 常见HTML符号转换整理
- 苹果Safari怎么打开html,苹果内置safari浏览器怎么用?safari浏览器详细使用教程...
- 鼠标右键转圈圈_电脑一右键就一直转圈怎么办_win10鼠标一点右键就转圈圈的解决方法...
- 报错:Error: module property was removed from Dependency
- CSDN个人博客管理
- Kotlin 基础语法(《第一行代码(第三版)》第二章读书笔记)
- U盘插上不显示解决方法
热门文章
- Jointly Learning Explainable Rules for Recommendation with Knowledge Graph
- 【URL重写】IIS7配置URL重写
- Java实现阿拉伯数字转换成汉字数字
- jena使用 java_【jena】 jena基本使用
- bzoj1052 覆盖问题 二分答案 dfs
- 九大背包问题专题--完全背包问题(详解,最优解)
- 坐标上海,我看见这群开发者用热爱改变世界
- CM13.0代码下载
- centos:/usr/bin/perl is needed by mysql-community-server
- mybatis plus 生成代码 保存方法主键报错 nested exception is org.apache.ibatis.reflection.ReflectionException: Cou