flask使用定時任務flask_apscheduler(APScheduler)

Flask-APScheduler描述:

Flask-APScheduler 是一個 Flask 擴展,增加了對 APScheduler 的支持。?

APScheduler 有三個內置的調度系統可供您使用:

  • Cron 式調度(可選開始/結束時間)

  • 基于間隔的執行(以偶數間隔運行作業,可選開始/結束時間)

  • 一次性延遲執行(在設定的日期/時間運行一次作業)

1.安裝 flask_apscheduler 庫

pip install flask_apscheduler

2.app.py中的代碼

2.1初始化APScheduler

# 創建Flask應用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()

?2.2使用方式

描述這里使用cron表達式

cron表達式生成器地址:https://cron.ciding.cc/

方式一: 硬編碼方式使用

# 創建Flask應用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()# 方式一硬編碼;
# 這些代碼也可以放在if __name__ == '__main__':內,與調試運行方式有關,
# 1.flask服務方式運行不會走if __name__ == '__main__':內代碼;
# 2.以Python文件(app.py)方式運行會走if __name__ == '__main__':內代碼;
scheduler.add_job(func=MyService.my_job, id='my_job', trigger='cron', second='0/5')
scheduler.init_app(app=app)
scheduler.start()

方式二: 讀取配置方式使用?

配置中代碼?

class Config:JOBS = [{'id': 'job1','func': 'app:MyService.my_job',  # 注意這里的格式,app 是 Flask 應用對象的名稱(app.py),: 后面是任務函數名'trigger': 'cron',# 'day_of_week': '0-6',  # 每天執行# 'hour': 18,  # 18 點執行# 'inute': 30,  # 30 分執行# 'econd': 5  # 0 秒執行'second': '0/5'}# ,# {#     'id': 'job2',#     'func': task2,  # 也可以直接使用函數名#     'trigger': 'interval',#     'econds': 30  # 每隔 30 秒執行一次# }]SCHEDULER_API_ENABLED = True
# 創建Flask應用
app = Flask(__name__)
# 初始化APScheduler
scheduler = APScheduler()# 方式一硬編碼
# scheduler.add_job(func=MyService.my_job, id='my_job', trigger='cron', second='0/5')
# 方式二讀取配置
app.config.from_object(Config())
scheduler.init_app(app=app)
scheduler.start()

3.my_service.py中(MyService類)代碼

from datetime import datetimefrom flask import Flaskclass MyService:@classmethoddef my_job(cls):print(f"my_job,當前時間{datetime.now()}")

4.項目整體結構

5.運行效果

具體代碼

https://gitee.com/jxzcode_admin/flask-project.git

參考資料

https://blog.csdn.net/m0_48770520/article/details/130735727

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

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

相關文章

c#中的超時終止

在C#中,可以使用CancellationToken和Task的超時機制來實現調用方法時的超時終止。 一 用Task.Delay(int)模擬耗時操作 static async Task Main(string[] args){using (var cts new CancellationTokenSource(1 * 1000)){await doSomething(cts.Token);}Console.Wr…

移動校園(7)ii:uniapp響應攔截器處理token,以及微信小程序報錯當前頁面正在處于跳轉狀態,請稍后再進行跳轉....

依據昨天的寫完,在token過期之后,再次調用接口,會觸發后端攔截,扔進全局錯誤處理中間件 前端說明提示都沒有,只有一個這個,現在優化一下,再寫一個類似全局后置守衛,當狀態碼是401的時…

RAID 冗余磁盤陣列

RAID也是Linux操作系統中管理磁盤的一種方式。 只有Linux操作系統才支持LVM的磁盤管理方式。 而RAID是一種通用的管理磁盤的技術,使用于多種操作系統。 優勢:提升數據的讀寫速度,提升數據的可靠性。具體實現哪什么功能,要看你所…

RGB樹-美團2023筆試(codefun2000)

題目鏈接 RGB樹-美團2023筆試(codefun2000) 題目內容 塔子哥是一位著名的冒險家,他經常在各種森林里探險。今天,他來到了道成林,這是一片美麗而神秘的森林。在探險途中,他遇到了一棵 n 個節點的樹,樹上每個節點都被涂…

LVGL移植與VS模擬器使用

一、移植文件介紹 二、移植部分 第一步:創建LVGL文件夾 第二步: 構造LVGL文件夾:LVGL - GUI - lvgl - 第三步:添加文件 3.1 從examples中添加2個.c文件 3.2 從src中添加文件 draw文件 extra文件 第四步: 三、Ke…

Linux系統安裝軟件包的方法rpm和yum詳解

起因: 本篇文章是記錄學習Centos7的歷程 關于rpm 常見命令 1)查看已經安裝的軟件包 rpm -q 軟件包名 2)查看文件的相關信息 rpm -qi 軟件包名 3)查看軟件包的依賴關系 就是說要想安裝這個軟件包,就必須把一些前…

三級_網絡技術_04_中小型網絡系統總體規劃與設計

1.下列關于路由器技術特征的描述中,正確的是()。 吞吐量是指路由器的路由表容量 背板能力決定了路由器的吞吐量 語音、視頻業務對延時抖動要求較低 突發處理能力是以最小幀間隔值來衡量的 2.下列關于路由器技術特征的描述中,正確的是()。 路由器的…

springboot公寓租賃系統-計算機畢業設計源碼03822

摘要 1 緒論 1.1 研究背景與意義 1.2選題背景 1.3論文結構與章節安排 2 公寓租賃系統系統分析 2.1 可行性分析 2.1.1 技術可行性分析 2.1.2 經濟可行性分析 2.1.3 法律可行性分析 2.2 系統功能分析 2.2.1 功能性分析 2.2.2 非功能性分析 2.3 系統用例分析 2.4 系…

韋東山嵌入式linux系列-第一個實驗

1 前言 筆者使用的是韋東山STM32MP157 Pro的板子,環境搭建部分按照說明文檔配置完成。配置橋接網卡實現板子、windows、ubuntu的通信,也在開發板掛載 Ubuntu 的NFS目錄 ,這里就不再贅述了。 板子: 192.168.5.9 windows: 192.168.5.10 ubunt…

【linux】服務器創建RAID1

【linux】服務器創建RAID1 文章目錄 【linux】服務器創建RAID1一、配置介紹raid介紹raid類型RAID 0:RAID 1:RAID 5:RAID 6:二、配置RAID硬件RAID:軟件RAID:三、軟件配置RAID1(以linux為例)1.先進入管理員模式2.安裝mdadm工具3.創建raid1數組4.查看RAID數組狀態5.格式化和掛載…

機械鍵盤如何挑選

機械鍵盤的選擇是一個關鍵的決策,因為它直接影響到我們每天的打字體驗。在選擇機械鍵盤時,有幾個關鍵因素需要考慮。首先是鍵盤的鍵軸類型。常見的鍵軸類型包括藍軸、紅軸、茶軸和黑軸等。不同的鍵軸類型具有不同的觸發力、觸發點和聲音。藍軸通常具有明…

神經網絡和安全結合:一種基于神經網絡的智能攻擊檢測與防御系統;構建攻擊行為預測模型

目錄 神經網絡和安全結合 摘要 引言 理論基礎 技術實現與創新點 實驗驗證 結論與展望 一種基于神經網絡的智能攻擊檢測與防御系統 一、系統概述 二、主要功能 三、技術特點 四、應用前景 構建攻擊行為預測模型 一、構建攻擊行為預測模型的步驟 1. 數據收集 2. …

單鏈表的學習與基礎運用p

當我們在實際做項目,或者是自主開發一點小東西的時候,往往會儲存一些數據,有時候我們需要添加這些數據,有時候需要刪除,而有時候,僅僅只需要查找到就行。鏈表中的每一個節點都是一個獨立開辟的空間&#xf…

聚類分析方法(一)

目錄 一、聚類分析原理(一)聚類分析概述(二)聚類的數學定義(三)簇的常見類型(四)聚類框架及性能要求(五)簇的距離 二、劃分聚類算法(一&#xff0…

Java 有什么必看的書?

Java必看經典書有這兩本: 1、Java核心技術速學版(第3版) 經典Java開發基礎書CoreJava速學版本!Java入門優選書籍,更新至Java17,內容皆是精華,讓Java學習更簡單,讓Java知識應用更快速…

【Linux】什么是進程間通信?方式有哪些?本質理解?

💐 🌸 🌷 🍀 🌹 🌻 🌺 🍁 🍃 🍂 🌿 🍄🍝 🍛 🍤 📃個人主頁 :阿然成長日記 …

使用 ChronicleMap 擴展高性能內存緩存

1.擴展內存緩存的挑戰 我們用于與各種程序化和需求方平臺 (DSP) 集成的應用程序之一是低延遲、高吞吐量的基于 JVM 的應用程序。這是 付款憑單(DV)付前前驗證解決方案的核心組件。自多年前成功推出此解決方案以來,我們不斷添加多項關鍵功能&…

【ChatGPT】全面解析 ChatGPT:從起源到未來

ChatGPT 是由 OpenAI 開發的一個基于 GPT(Generative Pre-training Transformer)架構的聊天機器人。通過自然語言處理(NLP)技術,ChatGPT 能夠理解和生成語言,與人類進行對話。本文將深入探討其起源、發展、…

SpringSecurity源碼分析-過濾器鏈是如何植入到spring中的

SpringSecurity源碼分析-過濾器鏈是如何植入到spring中的 一切的源頭都是因為在web.xml中配置了這樣一個Filter <!--security--><filter><filter-name>springSecurityFilterChain</filter-name><filter-class>org.springframework.web.filter.…

NoSQL 之 Redis 集群部署

前言&#xff1a; &#xff08;1&#xff09;主從復制&#xff1a;主從復制是高可用Redis的基礎&#xff0c;哨兵和集群都是在主從復制基礎上實現高可用 的。主從復制主要實現了數據的多機備份&#xff0c;以及對于讀操作的負載均衡和簡單的故障恢復。缺陷&#xff1a; 故障…