原文链接: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 周期性任务调度相关推荐

  1. Django使用supervisor管理celery和uwsgi实践记录 uwsgi BACKOFF Exited too quickly (process log may have details)

    Django使用supervisor管理celery和uwsgi实践记录 安装下载supervisor不用多说. 直接上配置文件: vir_path标识虚拟环境路径 pro_path标识项目路径 全部 ...

  2. django 1.11.6—— Celery

    https://segmentfault.com/a/1190000008022050 1. 环境 python==3.6djang==1.11.6 # 1.8, 1.9, 1.10应该都没问题cel ...

  3. 项目ITP(五) spring4.0 整合 Quartz 实现任务调度

    2014-05-16 22:51 by Jeff Li 前言 系列文章:[传送门] 项目需求: 二维码推送到一体机上,给学生签到扫描用. 然后须要的是 上课前20分钟 .幸好在帮带我的学长做 p2p ...

  4. Django完成异步工具——celery

    情景:用户发起request,并等待response返回.在本些views中,可能需要执行一段耗时的程序,那么用户就会等待很长时间,造成不好的用户体验,比如发送邮件.手机验证码等 使用celery后, ...

  5. Debian+Django+uWsgi+nginx+mysql+celery

    下载系统各种依赖 nano /etc/apt/sources.list 在Debian中使用apt-get安装软件包时经常会提示让你插入netinst的光盘: Media change: please ...

  6. Django从1.8升级到2.0注意事项

    2019独角兽企业重金招聘Python工程师标准>>> 我公司从2015年开发自动化部署平台,当时选用的开发框架是Django1.8版本.这两年多来,基于其上,很好的满足了我们的开发 ...

  7. 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端口,出现访问错误报错. 报错为: 报错原因: 刚接触 ...

  8. django mysql5.7_GitHub - qiubiteme/DjangoBloger: 一个Django2.0+mysql57,实现的响应式博客

    项目背景介绍,这是一个简单的博客项目, 在windows10环境下开发 基于python3.6.5 Django2.0 mysql5.7开发 计划后续开发为一个前后分离,现在简单的部署使用 部署环境 ...

  9. django 快速实现文件上传(django2.0)

    django2.0 快速实现文件上传 本操作环境: 虚拟环境:django2.0 python3.5(应该python3.6都可以使用) window10 1.创建项目与应用(项目和应用都是自己制定的 ...

  10. Django+小程序:24小时从0到1开发阴阳师小程序

    点击上方"程序员大咖",选择"置顶公众号" 关键时刻,第一时间送达! 0.序 玩阴阳师的肝帝们都知道,每天早上5点和下午6点会刷新两次封印任务,每次做任务时最蛋 ...

最新文章

  1. JVM(一) ---JVM的数据模型
  2. 注册不上zookeeper无报错_Zookeeper 跨区高可用方案
  3. 相对于硬件计算机软件就是,计算机的软件是将解决问题的方法,软件是相对于硬件来说的...
  4. go和java线程,Go的多线程和pthread或Java线程有什么区别?
  5. 关于linux防火墙
  6. JUnit:在参数化测试中命名单个测试用例
  7. 刘汝佳训练指南——数论专题知识点总结:
  8. cardsui-for-android
  9. silverlight(一.安装和新建项目)
  10. 继承关系 c# 1613704854
  11. L1-024. 后天-PAT团体程序设计天梯赛GPLT
  12. 用粉红噪声煲机_白噪音|煲机白噪音粉红噪音mp3下载 - 121下载站
  13. 计算机大赛鼓励语录,比赛加油鼓励经典语录
  14. 常见HTML符号转换整理
  15. 苹果Safari怎么打开html,苹果内置safari浏览器怎么用?safari浏览器详细使用教程...
  16. 鼠标右键转圈圈_电脑一右键就一直转圈怎么办_win10鼠标一点右键就转圈圈的解决方法...
  17. 报错:Error: module property was removed from Dependency
  18. CSDN个人博客管理
  19. Kotlin 基础语法(《第一行代码(第三版)》第二章读书笔记)
  20. U盘插上不显示解决方法

热门文章

  1. Jointly Learning Explainable Rules for Recommendation with Knowledge Graph
  2. 【URL重写】IIS7配置URL重写
  3. Java实现阿拉伯数字转换成汉字数字
  4. jena使用 java_【jena】 jena基本使用
  5. bzoj1052 覆盖问题 二分答案 dfs
  6. 九大背包问题专题--完全背包问题(详解,最优解)
  7. 坐标上海,我看见这群开发者用热爱改变世界
  8. CM13.0代码下载
  9. centos:/usr/bin/perl is needed by mysql-community-server
  10. mybatis plus 生成代码 保存方法主键报错 nested exception is org.apache.ibatis.reflection.ReflectionException: Cou