.NET Core 基於Quartz的UI視覺化操作元件 GZY.Quartz.MUI 簡介

GuZhenYin發表於2021-10-15
前言

最近在用Quartz做定時任務.雖然很方便,但是Quartz自己貌似是沒有UI介面的..感覺操作起來 就很難受..

查了一下,貌似有個UI元件 不過看了一下文件..直接給我勸退了..太麻煩了

我只想要一個像swaggerUI一樣,專案入侵量小,僅需要在Startup中注入的UI元件

然後就打算自己做一個.

最近終於完成第一個版本啦.. 打算直接開源給社群..

程式碼暫時還沒上傳gitlab,容我在整理優化一下 到時候是MIT協議

本篇主要就是簡單介紹一下如何使用和一部分介面.

 

正文

 1.注入QuartzUI

我們隨意建立一個託管專案,這裡我們以WebAPI作為示例,

通過Nuget新增GZY.Quartz.MUI 元件,如圖:

 

 

在Startup的ConfigureServices中新增註入程式碼如下:

public void ConfigureServices(IServiceCollection services)
{
            services.AddControllers();
            var optionsBuilder = new DbContextOptionsBuilder<QuarzEFContext>();
            optionsBuilder.UseDm("server=xxxxxxx;database=xxx;User Id=xxxx;PWD=xxxx", b => b.MaxBatchSize(1));
            services.AddQuartzUI(optionsBuilder.Options);

}

元件使用EF Core作為資料持久化訪問的工具(後期考慮擴充套件使用本地化的文字和其他的ORM框架,原始碼中也提供了介面,歡迎各路大神提交程式碼自行實現),所以需要建立一個DbContextOptionsBuilder,新增給QuartzUI即可.

在Startup的Configure方法中新增以下內容:

  public void Configure(IApplicationBuilder app, IWebHostEnvironment env)
  {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }

            app.UseRouting();

            app.UseAuthorization();
            app.UseQuartz(); //這裡注入Quartz
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapControllers();
            });
  }

 

2.執行專案進入管理介面

直接執行專案,我們在URL中輸入固定字尾 QuartzUI 如圖:

 

 這樣,我們的定時任務元件就跑起來了.

 

3.建立一個API型別的定時任務

點選新建任務,輸入對應引數.如圖:

 

 

注意:新建完成後任務處於未開啟狀態,需手動啟動.

點選啟動任務,定時任務就會根據設定啟動了.

4.檢視任務執行日誌

點選任務後面的執行記錄,即可查詢.如圖:

 

 

5.任務持久化

元件已經自動將任務持久化處理,專案啟動時會自行根據資料庫的資料情況來初始化任務,無需進行其他處理.

 

 

後記

有心的同學已經已經發現了..我們有DLL的型別..

這種型別是直接呼叫專案中的程式碼..就不用通過API介面了..因為稍微麻煩一點,所以我們下篇再講..

相關文章