django中celery的定时任务使用

 更新时间:2023年09月19日 14:53:21   作者:Li- Li  
这篇文章主要介绍了django中celery的定时任务使用方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

话不多说言归正传

1.celery 的介绍

1.1celery的基本介绍

celery是基于python实现的一个异步任务的调用工具,同时还是一个任务队列,主要用于处理耗时的任务。

celery也被称为芹菜。

celery架构由三个模块组成:消息中间件,任务执行单元和任务执行结果储存 组成。

其实那在刚接触的时候小编的理解是 :

老板把地皮交给包工头去干  让包工头把房子建好  然后包工头找了工人    把任务分配给工人让工人去干       最后工人盖好房子老板验收(这是小编自己的理解也就适合入门)

1.2什么是celery beat

celery支持定时任务,设定好任务的执行时间,

celery就会定时自动帮你执行, 这个定时任务模块叫celery beat

2.celery定时任务的配置

__init__.py

里面主要是celery初始化配置

from datetime import timedelta
from celery import Celery
import os
import django
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "自己的项目名.settings")
django.setup()
celery_app = Celery('mycelery')
#读取celery 的配置
celery_app.config_from_object('celery_task.config')
# 定时任务
                             # 文件夹名.文件名
celery_app.autodiscover_tasks(['celery_task.times'])
celery_app.conf.update(
    CELERYBEAT_SCHEDULE={
        'sum-task': {
             # 文件夹名.文件名.方法名
            'task': 'celery_task.times.my_con',
             # 多少秒执行一次(eg:5秒一执行)
            'schedule':  timedelta(seconds=5),
             # 这是传入my_con方法中的参数
            'args': (5, 6)
        },
        'sum-task1': {
            'task': 'celery_task.times.my_print',
            'schedule':  timedelta(seconds=3),
            'args': ()
        },
    }
)

config.py

"""
    celery 配置
"""
消息中间件 broker
BROKER_URL = 'redis://xx.xx.xx.xx:6379/11'
任务结果存储 results  backend
    CELERY_RESULT_BACKEND = 'redis://xx.xx.xx.xx:6379/12'
    # 时区
    CELERY_TIMEZONE = 'Asia/Shanghai'
    # 导入指定的任务模块
    CELERY_IMPORTS = (
        'celery_task.tasks'
    )

task.py 里面写的是异步任务就不展示了

times.py

里面写的是定时任务

# 定时任务
import time
from celery_task import celery_app
@celery_app.task()
def my_con(x,y):
    print(x,y)
    print('x和y相加')
    return x+y
@celery_app.task()
def my_print():
    print('22222222')

3.celery 启动命令

异步任务的启动命令:celery -A 任务名 worker -l info -P eventlet

定时任务的启动命令:celery -A 任务名 beat -l info

注意:要先启动异步任务,在启动定时任务

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • Python+drawpad实现CPU监控小程序

    Python+drawpad实现CPU监控小程序

    这篇文章主要为大家详细介绍了如何利用Python+drawpad实现一个简单的CPU监控小程序,文中示例代码讲解详细,感兴趣的小伙伴可以尝试一下
    2022-08-08
  • 深入理解pytorch库的dockerfile

    深入理解pytorch库的dockerfile

    这篇文章主要介绍了pytorch库的dockerfile,主要包括dockerfile命令,使用指令的注意点及存在的一些问题,本文给大家介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • python 获取毫秒数,计算调用时长的方法

    python 获取毫秒数,计算调用时长的方法

    今天小编就为大家分享一篇python 获取毫秒数,计算调用时长的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-02-02
  • python实现斐波那契递归函数的方法

    python实现斐波那契递归函数的方法

    这篇文章主要介绍了python实现斐波那契递归函数的方法,通过一个非常简单的递归函数加以实现,需要的朋友可以参考下
    2014-09-09
  • Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)

    Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException)

    这篇文章主要介绍了Python+Selenium定位不到元素常见原因及解决办法(报:NoSuchElementException),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • python 内置函数-range()+zip()+sorted()+map()+reduce()+filter()

    python 内置函数-range()+zip()+sorted()+map()+reduce()+filte

    这篇文章主要介绍了python 内置函数-range()+zip()+sorted()+map()+reduce()+filter(),想具体了解函数具体用法的小伙伴可以参考一下下面的介绍,希望对你有所帮助
    2021-12-12
  • python的Tqdm模块的使用

    python的Tqdm模块的使用

    这篇文章主要介绍了python的Tqdm模块的使用,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-01-01
  • 使用Python删除Word中表格的方法

    使用Python删除Word中表格的方法

    在处理Word文档时,我们经常会遇到需要删除表格的情况,无论是为了简化文档结构,还是为了更新内容,删除表格都是一个常见的操作,本文将介绍如何使用Python通过编程删除Word中的表格,需要的朋友可以参考下
    2024-11-11
  • python中浮点数比较判断!为什么不能用==(推荐)

    python中浮点数比较判断!为什么不能用==(推荐)

    这篇文章主要介绍了python中浮点数比较判断!为什么不能用==,本文给大家分享问题解决方法,需要的朋友可以参考下
    2023-09-09
  • python各种excel写入方式的速度对比

    python各种excel写入方式的速度对比

    这篇文章主要介绍了python各种excel写入方式的速度对比,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11

最新评论