Django自动注册tasks及使用方式

 更新时间:2023年06月21日 10:49:12   作者:alue  
这篇文章主要为大家介绍了Django自动注册tasks及使用方式详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪

注册定时任务使用

最近,利用 Django + dramatiq + apscheduler 实现了异步消息队列功能,能够在Django应用中,方便的注册定时任务。

使用方式如下:

# app/tasks.py
import dramatiq
from sigma_tools import cron
# ┌───────────── minute (0 - 59)
# │ ┌───────────── hour (0 - 23)
# │ │ ┌───────────── day of the month (1 - 31)
# │ │ │ ┌───────────── month (1 - 12)
# │ │ │ │ ┌───────────── day of the week (0 - 6) (Sunday to Saturday)
# │ │ │ │ │
# * * * * *  
@cron("*/1 * * * *")
@dramatiq.actor
def some_task():
    print("每分钟都会执行这个任务")

开发的过程中,遇到一个问题,就是自己定义的定时任务存在tasks.py文件中,如果不在Django工程中引入这个文件,该定时任务将不会被注册。

一个办法是在每一个app的 __init__.py 文件中,显式的引入其 tasks.py 模块。由于Django会自动注册app,注册的同时,也就会发现__init__.py 文件中的tasks模块了。

但这个方法太土了,而且每个app都需要做一遍这个重复的工作,不够优雅。

优雅的方式,是在注册调度器时,自动发现并注册所有的tasks模块,代码如下:

from django.apps import apps
for app in apps.get_app_configs():
    try:
        __import__(f'{app.name}.tasks')
    except ImportError:
        pass

这样,开发时,只管声明tasks即可.

以上就是Django自动注册tasks及使用方式的详细内容,更多关于Django自动注册tasks的资料请关注脚本之家其它相关文章!

相关文章

  • 安装Keras,tensorflow,并实现将虚拟环境添加到jupyter notebook

    安装Keras,tensorflow,并实现将虚拟环境添加到jupyter notebook

    这篇文章主要介绍了安装Keras,tensorflow,并实现将虚拟环境添加到jupyter notebook,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • python绘制无向图度分布曲线示例

    python绘制无向图度分布曲线示例

    今天小编就为大家分享一篇python绘制无向图度分布曲线示例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-11-11
  • Windows和Linux下Python输出彩色文字的方法教程

    Windows和Linux下Python输出彩色文字的方法教程

    这篇文章主要介绍了在Windows和Linux中Python输出彩色文字的方法,通过设置彩色文字给大家更醒目的效果,文中给出了详细的介绍和示例代码,需要的朋友可以参考借鉴,下面来一起看看吧。
    2017-05-05
  • python快速安装OpenCV的步骤记录

    python快速安装OpenCV的步骤记录

    这篇文章主要给大家介绍了关于python快速安装OpenCV的相关资料,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-02-02
  • Python学习笔记之While循环用法分析

    Python学习笔记之While循环用法分析

    这篇文章主要介绍了Python学习笔记之While循环用法,结合具体实例形式分析了while循环的原理、用法及相关操作注意事项,需要的朋友可以参考下
    2019-08-08
  • Python flask返回中文乱码的解决方法分享

    Python flask返回中文乱码的解决方法分享

    有时使用flask返回数据会出现带有中文的时候会显示成乱码(ascii)的情况出现,所以本文为大家整理了一下解决的方法,需要的小伙伴可以参考一下
    2023-07-07
  • 用python制作词云视频详解

    用python制作词云视频详解

    这篇文章主要介绍了用python制作词云视频详解,原理解释清晰,代码详细,用于练习很适合,需要的朋友可以参考下
    2021-04-04
  • 复制粘贴功能的Python程序

    复制粘贴功能的Python程序

    接下来,由于我觉得手动复制粘贴这29000条插入语句实在是太痛苦了,所以打算用Python来完成这项工作。这是我第一次自己动手写Python代码,感觉还挺顺利的。
    2008-04-04
  • python爬取网页内容转换为PDF文件

    python爬取网页内容转换为PDF文件

    这篇文章主要为大家详细介绍了python爬取网页内容转换为PDF文件,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-06-06
  • django中ImageField的使用详解

    django中ImageField的使用详解

    这篇文章主要介绍了django中ImageField的使用详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-12-12

最新评论