Python Celery定时任务详细讲解

 更新时间:2022年08月01日 16:54:39   作者:panda_225400  
这篇文章主要介绍了Python Celery定时任务详细讲解,文章围绕主题展开详细的内容介绍,具有一定的参考价值,需要的朋友可以参考一下

前言

Celery在python中的应用除了实现异步任务(async task)外也可以执行定时任务(beat)

一、Celery定时任务是什么?

Celery默认任务单元由任务生产者触发,但有时可能需要其自动触发,而Beat进程正是负责此类任务,能够自动触发定时/周期性任务.

Celery 进行周期任务也很简单,只需要在配置中配置好周期任务,然后在运行一个周期任务触发器(beat)即可,具体网上看

二、使用步骤

win10 + python3 + redis + celery 5

1.代码结构

celery_config.py配置:

代码如下(示例):

#-*-coding=utf-8-*-
from datetime import timedelta
from celery.schedules import crontab
# 中间件
BROKER_URL = 'redis://scck2svr03:6379/6'
# 结果存储
# CELERY_RESULT_BACKEND = 'redis://:scck2svr03:6379/5'
CELERYD_CONCURRENCY = 20  # 并发worker数
CELERYD_FORCE_EXECV = True  # 非常重要,有些情况下可以防止死锁
# CELERY_TASK_SERIALIZER = 'msgpack' # 任务序列化和反序列化使用msgpack方案
CELERY_RESULT_SERIALIZER = 'json'  # 读取任务结果一般性能要求不高,所以使用了可读性更好的JSON
CELERY_TASK_RESULT_EXPIRES = 60 * 60 * 24  # celery任务结果有效期
CELERY_ACCEPT_CONTENT = ['json', 'msgpack']  # 指定接受的内容类型
CELERY_TIMEZONE = 'Asia/Shanghai'  # celery使用的时区
CELERY_ENABLE_UTC = True  # 启动时区设置
# 默认worker队列
#CELERY_DEFAULT_QUEUE = 'default'
# 异步任务
CELERY_IMPORTS = (
    "celery_learning.email.tasks"
)
# celery beat
CELERYBEAT_SCHEDULE = {
    'periodic_task-every-minute': {
        'task': 'celery_learning.email.tasks.add',
        'schedule': crontab(minute="*/1"),
        'args': (1,2)
    },
    'periodic_task-every-10second':{
        'task':'celery_learning.email.tasks.add',
        'schedule':timedelta(seconds=10),
        'args':(1,12)
    }
}

2.启动定时任务

代码如下(示例):

终端1:celery -A celery_learning.celery_app worker -l info -P gevent
终端2:celery -A celery_learning.celery_app beat

终端1

终端2

3.执行结果

两个定时任务,一个每分钟执行,一个每10秒执行

结果如下:

总结

到此这篇关于Python Celery定时任务详细讲解的文章就介绍到这了,更多相关Python Celery 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python嵌套式数据结构实例浅析

    Python嵌套式数据结构实例浅析

    这篇文章主要介绍了Python嵌套式数据结构,结合实例形式简单分析了Python字典与列表元素的嵌套存储相关定义与操作技巧,需要的朋友可以参考下
    2019-03-03
  • Python+Opencv身份证号码区域提取及识别实现

    Python+Opencv身份证号码区域提取及识别实现

    这篇文章主要介绍了Python+Opencv身份证号码区域提取及识别实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-08-08
  • Django contenttypes 框架详解(小结)

    Django contenttypes 框架详解(小结)

    这篇文章主要介绍了Django contenttypes 框架详解(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 解决python训练模型报错:BrokenPipeError: [Errno 32] Broken pipe

    解决python训练模型报错:BrokenPipeError: [Errno 32] Broken pipe

    这篇文章主要介绍了解决python训练模型报错:BrokenPipeError: [Errno 32] Broken pipe问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-07-07
  • 解析ROC曲线绘制(python+sklearn+多分类)

    解析ROC曲线绘制(python+sklearn+多分类)

    这篇文章主要介绍了解析ROC曲线绘制(python+sklearn+多分类),具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-11-11
  • Python 异步之在 Asyncio中如何运行阻塞任务详解

    Python 异步之在 Asyncio中如何运行阻塞任务详解

    这篇文章主要为大家介绍了Python 异步之在 Asyncio 中运行阻塞任务示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03
  • python读取word文档的方法

    python读取word文档的方法

    这篇文章主要介绍了python读取word文档的方法,实例分析了Python基于win32com操作word文档的相关技巧,需要的朋友可以参考下
    2015-05-05
  • 使用Python编排Dockerfile的代码详解

    使用Python编排Dockerfile的代码详解

    docker compose 是 docker 的容器编排工具,它是基于 YAML 配置,YAML 是一种配置文件格式,支持传递环境变量,但是对于复杂的容器编排显得力不从心,于是我便开发这个程序,可以像写程序一样编排 docker,感兴趣的的朋友可以参考下
    2024-08-08
  • python查看矩阵的行列号以及维数方式

    python查看矩阵的行列号以及维数方式

    这篇文章主要介绍了python查看矩阵的行列号以及维数方式,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-05-05
  • 探究数组排序提升Python程序的循环的运行效率的原因

    探究数组排序提升Python程序的循环的运行效率的原因

    这篇文章主要介绍了探究数组排序提升Python程序的循环的运行效率的原因,作者用代码实践了多个小片段来进行对比解释,需要的朋友可以参考下
    2015-04-04

最新评论