Django之定時任務--apscheduler

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.pyINSTALLED_APPS = [# other apps'django_apscheduler',
]# Configure the Django APScheduler
SCHEDULER_API_ENABLED = True

3、在manage.py的文件同級目錄下創建文件scheduler.py

# scheduler.pyfrom 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 herepass# 在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.pyfrom django.urls import path
from .scheduler import schedulerurlpatterns = [# other URL patterns
]# Start the scheduler
scheduler.start()

5、然后啟動項目 python manage.py runserver,在admin中查看就能看到你的定時任務及執行的時間了,下面以我的定時任務為例看一下圖片

在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/42317.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/42317.shtml
英文地址,請注明出處:http://en.pswp.cn/news/42317.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

機器學習算法之-邏輯回歸(1)

什么是回歸 回歸樹,隨機森林的回歸,無一例外他們都是區別于分類算法們,用來處理和預測連續型標簽的算法。然而邏輯回歸,是一種名為“回歸”的線性分類器,其本質是由線性回歸變化而來的,一種廣泛使用于分類問…

Vue 引入 Element-UI 組件庫

Element-UI 官網地址:https://element.eleme.cn/#/zh-CN 完整引入:會將全部組件打包到項目中,導致項目過大,首次加載時間過長。 下載 Element-UI 一、打開項目,安裝 Element-UI 組件庫。 使用命令: npm …

ArcGIS Maps SDK for JavaScript系列之二:認識Map和MapView

目錄 Map創建一個 Map 對象的示例代碼:Map的常用屬性Map的常用方法 MapViewMapView的常用屬性MapView的常用方法 在 ArcGIS Maps SDK for JavaScript 中,Map 和 MapView 是兩個重要的概念,用于創建和展示地圖應用程序。 Map Map 表示一個地圖…

【Rust】Rust學習 第十三章Rust 中的函數式語言功能:迭代器與閉包

Rust 的設計靈感來源于很多現存的語言和技術。其中一個顯著的影響就是 函數式編程(functional programming)。函數式編程風格通常包含將函數作為參數值或其他函數的返回值、將函數賦值給變量以供之后執行等等。 更具體的,我們將要涉及&#…

bert,transformer架構圖及面試題

Transformer詳解 - mathor atten之后經過一個全連接層殘差層歸一化 class BertSelfOutput(nn.Module):def __init__(self, config):super().__init__()self.dense nn.Linear(config.hidden_size, config.hidden_size)self.LayerNorm nn.LayerNorm(config.hidden_size, epscon…

redis 發布和訂閱

目錄 一、簡介 二、常用命令 三、示例 一、簡介 Redis 發布訂閱 (pub/sub) 是一種消息通信模式:發送者 (pub) 發送消息,訂閱者 (sub) 接收消息。Redis 客戶端可以訂閱任意數量的頻道。下圖展示了頻道 channel1 ,以及訂閱這個頻道的三個客戶…

前端對文件轉換處理的一些常用方法

文章目錄 0,前言1,將圖片的url網絡鏈接(http://) 轉為base64格式2,將base64的圖片數據轉換為file文件3,將以base64的圖片數據轉換為Blob4,將file文件轉化為base645,將file文件轉換為Blob6,獲取文…

CentOS系統環境搭建(八)——CentOS7開機自動執行腳本(以MySQL為例)

CentOS7開機自動執行腳本 文章目錄 CentOS7開機自動執行腳本第一步:新建一個腳本run.sh第二步:腳本添加可執行權限第三步:執行如下命令將/etc/rc.d/rc.local文標記為可執行文件第四步:打開/etc/rc.d/rc.local文件,在最…

利用Opencv實現人像遷移

前言: Hello大家好,我是Dream。 今天來學習一下如何使用Opencv實現人像遷移,歡迎大家一起參與探討交流~ 本文目錄: 一、實驗要求二、實驗環境三、實驗原理及操作1.照片準備2.圖像增強3.實現美顏功能4.背景虛化5.圖像二值化處理6.人…

item_password-獲得淘口令真實url

一、接口參數說明: item_password-獲得淘口令真實url ,點擊更多API調試,請移步注冊API賬號點擊獲取測試key和secret 公共參數 請求地址: https://api-gw.onebound.cn/taobao/item_password 名稱類型必須描述keyString是調用key&#xff08…

tomcat源碼修改與編譯

1、獲取源碼 從github下載其源碼:https://github.com/apache/tomcat 2、選擇版本 切換到對應版本(直接用相對應的Git tag即可): git checkout 9.0.793、修改源代碼,并且生成補丁 這里我們以修改去掉新版本的ws的檢…

129.【Spring 注解 IOC】

Spring 注解 (一)、組件注冊1. Configuration 與 Bean 容器注冊組件(1).無注解注入方式(2).注解注入方式 2. ComponentScan 自動掃描組件和自動掃描規則(1).無注解掃描方式(2).注解掃描注入方式(3).指定掃描或不掃描的包 (過濾) 3. 自定義TypeFilter指定過濾規則 Filter(1).自定…

openCV項目開發實戰--詳細介紹如何改善夜間圖像的照明(附python和C++源碼)

文末附完整的代碼實現下載鏈接 介紹 對于非攝影師來說,在光線不佳的條件下拍出好照片似乎很神奇。完成低光攝影需要技巧、經驗和正確的設備的結合。在弱光下拍攝的圖像缺乏色彩和獨特的邊緣。它們還遭受能見度差和深度未知的困擾。這些缺點使得此類圖像不適合個人使用或圖像處…

QT多屏顯示程序

多屏顯示的原理其實很好理解,就拿橫向擴展來說: 計算機把桌面的 寬度擴展成了 w1(屏幕1的寬度) w2(屏幕2的寬度) 。 當一個窗口的起始橫坐標 > w1,則 他就被顯示在第二個屏幕上了。 drm設備可以多用戶同時打開&am…

Spring MVC 簡介

目錄 1. 什么是MVC2. 什么是SpringMVC 1. 什么是MVC MVC是一種常用的軟件架構模式。可以看作是一種設計模式,也可以看作是一種軟件框架。經典MVC模式中,M是指模型,V是視圖,C則是控制器,使用MVC的目的是將M和V的實現代…

golang中使用chan控制協程并發簡單事例

func main() {processNum : 5ch : make(chan struct{}, processNum)for true {ch <- struct{}{}go func() {defer func() {<-ch}()fmt.Println("我是協程", time.Now().UnixNano())time.Sleep(time.Second * 5)}()} } 可以看到&#xff0c;這里每5s會執行一次帶…

Linux15 消息隊列 線程

目錄 1、進程間通信IPC&#xff1a; 2、多線程 3、向消息隊列中寫入數據 4、從消息隊列中讀取數據 5、多線程&#xff1a; 6、將多線程的數據返回給主…

數據庫索引優化策略與性能提升實踐

文章目錄 什么是數據庫索引&#xff1f;為什么需要數據庫索引優化&#xff1f;數據庫索引優化策略實踐案例&#xff1a;索引優化帶來的性能提升索引優化規則1. 前導模糊查詢不適用索引2. 使用IN優于UNION和OR3. 負向條件查詢不適用索引4. 聯合索引最左前綴原則5. 范圍條件查詢右…

c#實現策略模式

下面是一個使用C#實現策略模式的示例代碼&#xff1a; using System;// 策略接口 public interface IStrategy {void Execute(); }// 具體策略類A public class ConcreteStrategyA : IStrategy {public void Execute(){Console.WriteLine("具體策略A的執行邏輯");} …

【Mysql】MVCC版本機制的多并發

&#x1f307;個人主頁&#xff1a;平凡的小蘇 &#x1f4da;學習格言&#xff1a;命運給你一個低的起點&#xff0c;是想看你精彩的翻盤&#xff0c;而不是讓你自甘墮落&#xff0c;腳下的路雖然難走&#xff0c;但我還能走&#xff0c;比起向陽而生&#xff0c;我更想嘗試逆風…