Django之定时任务--apscheduler

news2024/11/25 11:59:32

Django--定时任务apscheduler的使用

  • apscheduler定时任务的使用
    • 1、安装包
    • 2、配置settings.py
    • 3、在manage.py的文件同级目录下创建文件scheduler.py
    • 4、在项目的urls.py中调用这个定时计划
    • 5、然后启动项目 python manage.py runserver,在admin中查看就能看到你的定时任务及执行的时间了,下面以我的定时任务为例看一下图片

apscheduler定时任务的使用

在写一个兴趣班教务管理的小程序时,使用了Django后台来管理数据库,由于每天要根据现有设定的班级进行课表的更新,所以需要一个定时器,但是开发环境是在windows上,后台部署在linux上,问了chatGPT,说是apscheduer支持跨平台使用,然后就选了这个,以下是使用过程,按chatGPT给的代码,一次成功,比百度出来的效果好多了。

1、安装包

pip install apscheduler

2、配置settings.py

# settings.py

INSTALLED_APPS = [
    # other apps
    'django_apscheduler',
]

# Configure the Django APScheduler
SCHEDULER_API_ENABLED = True

3、在manage.py的文件同级目录下创建文件scheduler.py

# scheduler.py

from apscheduler.schedulers.background import BackgroundScheduler
from django_apscheduler.jobstores import DjangoJobStore, register_events, register_job
from datetime import datetime, timedelta
from django.contrib.auth.models import User

# Create a scheduler
scheduler = BackgroundScheduler()
scheduler.add_jobstore(DjangoJobStore(), "default")
register_events(scheduler)

# Define the task functions
def count_users():
    user_count = User.objects.count()
    print(f"Total number of users: {user_count}")

def update_database():
    # Update database logic here
    pass

# 在7天后这个时间,执行一下任务,run_date只是一次,所以只会执行一次
# Register the task functions with the scheduler
@register_job(scheduler, "date", run_date=datetime.now() + timedelta(days=7), id="count_users_job", replace_existing=True)
def count_users_job():
    count_users()
# 这个没有指定哪天,只是指定小时,所以会在每天的12点,执行这个任务
@register_job(scheduler, "cron", hour=12, id="update_database_job", replace_existing=True)
def update_database_job():
    update_database()

4、在项目的urls.py中调用这个定时计划

# urls.py

from django.urls import path
from .scheduler import scheduler

urlpatterns = [
    # other URL patterns
]

# Start the scheduler
scheduler.start()

5、然后启动项目 python manage.py runserver,在admin中查看就能看到你的定时任务及执行的时间了,下面以我的定时任务为例看一下图片

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/878345.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

LeetCode刷题——617. 合并二叉树

617. 合并二叉树 给你两棵二叉树: root1 和 root2 。 想象一下,当你将其中一棵覆盖到另一棵之上时,两棵树上的一些节点将会重叠(而另一些不会)。你需要将这两棵树合并成一棵新二叉树。合并的规则是:如果两…

嵌入式:ARM Day1

1. 思维导图 2.作业一 3.作业2

selenium自动化测试之搭建测试环境

自动化测试环境: Python3.7Selenium3.141谷歌浏览器76.0/火狐浏览器 1、安装Python并配置环境变量。 下载并安装:配置环境变量:C:\Python37;C:\Python37\Scripts; 2、安装Pycharm开发工具。 下载地址: 注意下载:Co…

stm32项目(10)——基于stm32的盲人监护系统

一.实现的功能 本次设计的盲人监护系统,旨在为盲人的外出提供保护。主要功能如下: 超声波测距模块检测前方障碍物,当前方有障碍物时,语音模块报警提示“前方有障碍物,请绕道”,盲人在听到这条语音后就知…

一篇文章搞懂图像的本质是什么

图像是什么? 每个图⽚可以看成数组 彩⾊图⽚呢? #pic_center 500x500 计算机眼⾥的颜⾊图⽚ Numpy读取彩⾊照⽚ • Shape 三维数组 • ⾼度 • 宽度 • 颜⾊通道 Numpy读取彩⾊照⽚ • 照⽚⼤⼩ 540 x 480 • 540个像素宽度 • 480个像素⾼度 • 3个颜…

[NDK]从Opengles到Vulkan-基础篇(2)-运行配置

上一篇我们介绍了Opengl和Vulkan运行环境的不同。 引入Opengles,我们需要做的是,在Cmakes中配置动态库引入。 使用opengles2就用GLESv2,用es3就用GLESv3,而EGL需要使用配置EGL环境 这里两个比较基础的东西是EGL和GLES的库引入。 es2只要Android 4.0就开始支持,es3是4.4开…

【2023最新版】APP测试面试题(超详细~)

一、web测试和app测试的相同点和区别? 相同点:都离不开测试的基础知识和测试原理。具体包括以下几个方面。 测试用例,均使用边界值分析法,等价类划分法等。多数采用黑盒测试,来验证业务功能是否能得到正确的应用。 需…

外贸出货中惹了个大麻烦

谈C端的客户与B端的客户相比, 我觉得最大的好处就是不用我们自己去报关,一般C端的客户都会有自己的货代负责双清业务,即使我们自己去发货, 也是会找双清的货代,因此我们自己本身就不要报关报检, 只需要将货…

【云原生】K8S存储卷:PV、PVC详解

目录 一、emptyDir存储卷二、hostPath存储卷三、nfs共享存储卷四、PVC 和 PV4.1 NFS使用PV和PVC4.2创建动态PV 一、emptyDir存储卷 容器磁盘上的文件的生命周期是短暂的,这就使得在容器中运行重要应用时会出现一些问题。首先,当容器崩溃时,ku…

Web菜鸟教程 - Radis实现高性能数据库

Redis是用C语言开发的一个高性能键值对数据库,可用于数据缓存,主要用于处理大量数据的高访问负载。 也就是说,如果你对性能要求不高,不用Radis也是可以的。不过作为最自己写的程序有高要求的程序员,自然是要学一下的&a…

adb对安卓app进行抓包(ip连接设备)

adb对安卓app进行抓包(ip连接设备) 一,首先将安卓设备的开发者模式打开,提示允许adb调试 二,自己的笔记本要和安卓设备在同一个网段下(同连一个WiFi就可以了) 三,在笔记本上根据i…

RunnerGo的相比较JMeter优势,能不能替代?

目前在性能测试领域市场jmeter占有率是非常高的,主要原因是相对比其他性能测试工具使用更简单(开源、易扩展),功能更强大(满足多种协议的接口),但是随着研发协同的升级,平台化的性能…

手机出现 不读卡 / 无信号时应该怎么办?

当手机屏幕亮起,一般在屏幕最上方都会有代表手机卡状态的显示,其中网络信号和读卡状态的标识,依旧有很多人分不太清,更不清楚改怎么办了。 1、当我们的手机里有两张卡时,则会有两个信号显示 2、信号状态一般是由短到…

淘宝商品数据接口 淘宝商品价格接口 淘宝商品sku抓取

基础介绍 1)淘宝商品id,它均由数字构成,且如同身份证号码一样具有唯一性,属于商品链接中的一部分。在淘宝页面可以以下方式查看。 直接打开商品的详情页面,看到浏览器地址栏中的宝贝链接,链接中找到“id”&…

Android Jetpack Compose 中的分页与缓存展示

Android Jetpack Compose 中的分页与缓存展示 在几乎任何类型的移动项目中,移动开发人员在某个时候都会处理分页数据。如果数据列表太大,无法一次从服务器检索完毕,这就是必需的。因此,我们的后端同事为我们提供了一个端点&#…

分类预测 | MATLAB实现GAPSO-BP遗传算法组合粒子群算法优化BP神经网络多输入分类预测

分类预测 | MATLAB实现GAPSO-BP遗传算法组合粒子群算法优化BP神经网络多输入分类预测 目录 分类预测 | MATLAB实现GAPSO-BP遗传算法组合粒子群算法优化BP神经网络多输入分类预测预测效果基本介绍模型描述程序设计参考资料 预测效果 基本介绍 1.分类预测 | MATLAB实现GAPSO-BP遗…

每日一题——对称的二叉树

题目 给定一棵二叉树,判断其是否是自身的镜像(即:是否对称) 例如: 下面这棵二叉树是对称的 下面这棵二叉树不对称。 数据范围:节点数满足 0≤n≤1000,节点上的值满足 ∣val∣≤1000 要求&…

并发服务器模型,多线程并发

一、多线程并发完整代码 #include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <arpa/inet.h> #include <string.h> #include <unistd.h> #include <sys/wait.h> #include <stdlib.h> #include <…

[高光谱]PyTorch使用CNN对高光谱图像进行分类

项目原地址&#xff1a; Hyperspectral-Classificationhttps://github.com/eecn/Hyperspectral-ClassificationDataLoader讲解&#xff1a; [高光谱]使用PyTorch的dataloader加载高光谱数据https://blog.csdn.net/weixin_37878740/article/details/130929358 一、模型加载 在…

怎样才能免费使用Qt开发闭源商业软件?

Qt 是一个跨平台的应用程序开发框架&#xff0c;其使用遵循 GNU Lesser General Public License&#xff08;LGPL&#xff09;开源许可协议。根据 LGPL 许可协议&#xff0c;您可以将 Qt 用于闭源商业软件&#xff0c;但是您需要满足以下条件&#xff1a; 1. 在您的软件中使用…