ASP.NET Core MVC+Quartz實現定時任務可視化管理頁面

来源:https://www.cnblogs.com/hsiang/archive/2023/03/29/17267296.html
-Advertisement-
Play Games

在前一篇文章,我們瞭解瞭如何通過.NET6+Quartz開發基於控制台應用程式的定時任務,今天繼續在之前的基礎上,進一步講解基於ASP.NET Core MVC+Quartz實現定時任務的可視化管理頁面,僅供學習分享使用,如有不足之處,還請指正。 涉及知識點 Quartz組件,關於Quartz組件的 ...


在前一篇文章,我們瞭解瞭如何通過.NET6+Quartz開發基於控制台應用程式的定時任務,今天繼續在之前的基礎上,進一步講解基於ASP.NET Core MVC+Quartz實現定時任務的可視化管理頁面,僅供學習分享使用,如有不足之處,還請指正。

涉及知識點

  1. Quartz組件,關於Quartz組件的基本介紹,可參考前一篇文章或官網。
  2. GZY.Quartz.MUI,基於Quartz的定時任務維護UI,具有新增,刪除,啟動,停止等功能,之處DLL和WebAPI介面調用兩種模式。

創建ASP.NET Core MVC項目

在Visual Studio 2022中,首先創建基於ASP.NET Core MVC 的項目,根據步驟進行創建即可,如下所示:

 

安裝組件

項目創建成功後,通過NuGet包管理器,安裝對應組件,本示例僅演示Quartz相關內容,所以只需要安裝相關組件即可,如下所示:

 

組件註入

組件安裝後,需要在Progrom.cs中進行註入,才可以在啟動時載入對應內容。如下所示:

 1 using GZY.Quartz.MUI.Extensions;
 2 using QuartzAdmin.QuartzA;
 3 
 4 var builder = WebApplication.CreateBuilder(args);
 5 // Add services to the container.
 6 builder.Services.AddControllersWithViews();
 7 builder.Services.AddControllers();
 8 //1. 添加QuartzUI服務
 9 builder.Services.AddQuartzUI();
10 //2. 添加基於DLL模式的Quartz任務支持
11 builder.Services.AddQuartzClassJobs();
12 var app = builder.Build();
13 
14 // Configure the HTTP request pipeline.
15 if (!app.Environment.IsDevelopment())
16 {
17     app.UseExceptionHandler("/Home/Error");
18     // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
19     app.UseHsts();
20 }
21 
22 app.UseHttpsRedirection();
23 app.UseStaticFiles();
24 
25 app.UseRouting();
26 
27 app.UseAuthorization();
28 //3.使用Quartz組件
29 app.UseQuartz();
30 
31 app.MapControllerRoute(
32     name: "default",
33     pattern: "{controller=Home}/{action=Index}/{id?}");
34 //在Use中註冊單例實例
35 app.Use(async (context, next) =>
36 {
37     
38     
39     if (next != null)
40     {
41         await next.Invoke();
42     }
43 });
44 app.Run();

運行測試

在配置好後,運行程式,預設打開的是首頁,手動輸入網址https://localhost:7172/QuartzUI,即可看到Quartz管理頁面,如下所示:

 

 基於DLL的定時任務

在小型項目中,如果為了定時任務,再去創建WebAPI介面,會比較麻煩,所以基於DLL方式的任務更常見,在Quartz框架下,創建基於DLL方式的任務,需要實現IJobService介面,此介面是GZY.Quartz.MUI組件庫自帶的預設介面,如下所示:

 1 using GZY.Quartz.MUI.BaseService;
 2 
 3 namespace QuartzAdmin.QuartzA.Job
 4 {
 5     public class TestJob : IJobService
 6     {
 7         public string ExecuteService(string parameter)
 8         {
 9             Console.WriteLine($"測試任務被執行了:{parameter}.");
10             return String.Empty;
11         }
12     }
13 }

任務創建成功後,在頁面新建任務時,選擇DLL方式,會自動識別TestJob,選擇即可,如下所示:

 

 基於WebAPI的定時任務

基於WebAPI的定時任務,是所有的WebAPI介面都可以作為調用的任務,無需特殊處理。在ASP.NET Core MVC項目中,預設情況下是支持WebAPI的,首先創建測試WebAPI介面,如下所示:

 1 using Microsoft.AspNetCore.Http;
 2 using Microsoft.AspNetCore.Mvc;
 3 
 4 namespace QuartzAdmin.Controllers
 5 {
 6     [Route("api/[controller]/[action]")]
 7     [ApiController]
 8     public class TestApiController : ControllerBase
 9     {
10         [HttpGet]
11         public void Test(string parameters)
12         {
13             Console.WriteLine($"test web api {parameters},---{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
14         }
15     }
16 }

在任務管理頁面,新建任務,任務類型選擇API,URL就是WebAPI的介面網址,如下所示:

 

啟動與暫停任務

預設情況下,創建的任務是停止狀態,選擇任務,開啟任務即可。如果任務正在運行,也可以暫停任務。或者刪除任務。如下所示:

 

 查看任務執行記錄

通過點擊具體任務右側的執行記錄按鈕,可以查看執行日誌。如果有執行過程中有錯誤,也會顯示,成功則不顯示任何信息,如下所示:

 

好了,以上就是ASP.NET Core MVC+Quartz開發定時任務管理頁面的全部內容,旨在拋磚引玉,一起學習,共同進步。


作者:小六公子
出處:http://www.cnblogs.com/hsiang/
本文版權歸作者和博客園共有,寫文不易,支持原創,歡迎轉載【點贊】,轉載請保留此段聲明,且在文章頁面明顯位置給出原文連接,謝謝。
關註個人公眾號,定時同步更新技術及職場文章


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 功能實現02 6.功能05-顯示家居信息 6.1需求分析 進入後臺系統,可以在頁面進行所有家居信息的展示 6.2思路分析 完成從後端代碼從mapper(dao層)-->Service層-->Controller層,並對代碼進行測試 完成前端代碼,使用axios發送http請求,返回所有家居信息,將數 ...
  • 使用 VLD 記憶體泄漏檢測工具輔助開發時整理的學習筆記。本篇介紹 VLD 配置文件中配置項 StartDisabled 的使用方法。 ...
  • QAbstractBUtton: 所有按鈕控制項的基類 提供按鈕的通用功能 繼承自QWidget 屬於抽象類別,不能直接去使用,必須藉助於子類(除非你覺得子類不夠用,想自定義一個按鈕) 大部分功能之前已經使用過,在這裡只作簡單介紹 文本設置: setText(str) :設置按鈕提示文本 text() ...
  • 推薦一些學習qml教程 Qt官方的QML教程: https://doc.qt.io/qt-5/qtqml-index.html 這是一個由Qt官方提供的完整的QML教程,包含了所有基本知識和高級語法。 QML中文網:http://www.qmlcn.com/ 這是一個非常不錯的中文QML學習網站,提 ...
  • 面向對象2 訪問修飾符 | | private | default | protected | public | | | | | | | | 當前類 | :heavy_check_mark: | :heavy_check_mark: | :heavy_check_mark: | :heavy_che ...
  • JavaSE 運算符 算術運算符:+,-,*,/,%,++(自增),--(自減) i++:先用後+1;++i:先+1後用 賦值運算符:= 擴展賦值運算符:+=,-=,*=,/= a+=b >a=a+b: ​ 可讀性差,但是編譯效率高,且會自動進行類型轉換; ​ 當ab為基本數據類型時,a+b和b+a ...
  • NX中的checkmate功能是用於檢查模型、圖紙數據的工具,在UGOPEN中有例子。手動操作可以檢查已載入的裝配下所有零部件,可以設置通過後保存模型,檢查結果保存到Teamcenter中,預設保存在零組件版本下。 代碼中可以設置多個檢查規則。相關設置可以在用戶預設設置中進行設置。 1 // 2 / ...
  • 面向對象1 面向對象,更在乎的結果,而過程的實現並不重要 IDea快捷鍵(基礎版) | 快捷鍵 | 作用 | | | | | ctrl + / | 快捷註釋 | | ctrl + shift + / | 多行註釋 | | ctrl + d | 快速複製 | | ctrl + shift + up/d ...
一周排行
    -Advertisement-
    Play Games
  • PasteSpider是什麼? 一款使用.net編寫的開源的Linux容器部署助手,支持一鍵發佈,平滑升級,自動伸縮, Key-Value配置,項目網關,環境隔離,運行報表,差量升級,私有倉庫,集群部署,版本管理等! 30分鐘上手,讓開發也可以很容易的學會在linux上部署你得項目! [從需求角度介 ...
  • SQLSugar是什麼 **1. 輕量級ORM框架,專為.NET CORE開發人員設計,它提供了簡單、高效的方式來處理資料庫操作,使開發人員能夠更輕鬆地與資料庫進行交互 2. 簡化資料庫操作和數據訪問,允許開發人員在C#代碼中直接操作資料庫,而不需要編寫複雜的SQL語句 3. 支持多種資料庫,包括但 ...
  • 在C#中,經常會有一些耗時較長的CPU密集型運算,因為如果直接在UI線程執行這樣的運算就會出現UI不響應的問題。解決這類問題的主要途徑是使用多線程,啟動一個後臺線程,把運算操作放在這個後臺線程中完成。但是原生介面的線程操作有一些難度,如果要更進一步的去完成線程間的通訊就會難上加難。 因此,.NET類 ...
  • 一:背景 1. 講故事 前些天有位朋友在微信上丟了一個崩潰的dump給我,讓我幫忙看下為什麼出現了崩潰,在 Windows 的事件查看器上顯示的是經典的 訪問違例 ,即 c0000005 錯誤碼,不管怎麼說有dump就可以上windbg開幹了。 二:WinDbg 分析 1. 程式為誰崩潰了 在 Wi ...
  • CSharpe中的IO+NPOI+序列化 文件文件夾操作 學習一下常見的文件、文件夾的操作。 什麼是IO流? I:就是input O:就是output,故稱:輸入輸出流 將數據讀入記憶體或者記憶體輸出的過程。 常見的IO流操作,一般說的是[記憶體]與[磁碟]之間的輸入輸出。 作用 持久化數據,保證數據不再 ...
  • C#.NET與JAVA互通之MD5哈希V2024 配套視頻: 要點: 1.計算MD5時,SDK自帶的計算哈希(ComputeHash)方法,輸入輸出參數都是byte數組。就涉及到字元串轉byte數組轉換時,編碼選擇的問題。 2.輸入參數,字元串轉byte數組時,編碼雙方要統一,一般為:UTF-8。 ...
  • CodeWF.EventBus,一款靈活的事件匯流排庫,實現模塊間解耦通信。支持多種.NET項目類型,如WPF、WinForms、ASP.NET Core等。採用簡潔設計,輕鬆實現事件的發佈與訂閱。通過有序的消息處理,確保事件得到妥善處理。簡化您的代碼,提升系統可維護性。 ...
  • 一、基本的.NET框架概念 .NET框架是一個由微軟開發的軟體開發平臺,它提供了一個運行時環境(CLR - Common Language Runtime)和一套豐富的類庫(FCL - Framework Class Library)。CLR負責管理代碼的執行,而FCL則提供了大量預先編寫好的代碼, ...
  • 本章將和大家分享在ASP.NET Core中如何使用高級客戶端NEST來操作我們的Elasticsearch。 NEST是一個高級別的Elasticsearch .NET客戶端,它仍然非常接近原始Elasticsearch API的映射。所有的請求和響應都是通過類型來暴露的,這使得它非常適合快速上手 ...
  • 參考delphi的代碼更改為C# Delphi 檢測密碼強度 規則(仿 google) 仿 google 評分規則 一、密碼長度: 5 分: 小於等於 4 個字元 10 分: 5 到 7 字元 25 分: 大於等於 8 個字元 二、字母: 0 分: 沒有字母 10 分: 全都是小(大)寫字母 20 ...