一行程式碼完成定時任務排程,基於Quartz的UI視覺化操作元件 GZY.Quartz.MUI

GuZhenYin發表於2021-12-29
前言

之前釋出過第一個版本,有興趣的可以去看看:

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

GitHub開源地址:l2999019/GZY.Quartz.MUI: 基於Quartz的輕量級,注入化的UI元件 (github.com) (歡迎點Start收藏~)

總而言之,這個元件主要想做的就是:像swaggerUI一樣,專案入侵量小,僅需要在Startup中注入的UI元件

目前完成了第二個版本,

1.增加本地json持久化排程任務,無需資料庫

2.增加直接呼叫本地類方法,無需通過WebAPI介面.

本篇主要是介紹一下這兩個新增的功能.

 

正文

一.增加本地json持久化排程任務,無需資料庫  

  1.首先,我們建立一個空白的ASP.NET Core 專案(MVC、Razor和WebAPI都行),如圖:

  

 

 

 

 

       2.通過nuget引用最新版本的GZY.Quartz.MUI元件,如圖:

     

 

  3.修改一下Startup.cs

  在ConfigureServices新增一行程式碼如下:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddQuartzUI();
        }

  在Configure新增一行程式碼如下:  

  

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

            app.UseRouting();
            app.UseQuartz(); //新增這行程式碼
            app.UseEndpoints(endpoints =>
            {
                endpoints.MapGet("/", async context =>
                {
                    await context.Response.WriteAsync("Hello World!");
                });
            });
   }

 

 

4.執行並啟動專案,在彈出來的地址中,輸入字尾 /QuartzUI,如圖:

 

 

 

 我們就可以愉快的開始新增自己的定時排程任務啦~(PS:新新增的任務,預設是暫停狀態,需要啟動後才能立即執行哦)

 

 

 

二.增加直接呼叫本地類方法,無需通過WebAPI介面.

上一個版本釋出之後,有小夥伴反映,排程任務只能通過webapi去呼叫,在一些小型專案中難應用,比如純MVC的專案

這次我新增了通過繼承介面,就可以直接呼叫本地方法的方式~ 我們來一步步介紹.

1.我們建立一個測試類,繼承IJobService如下:

    public class TestJob : IJobService
    {
        public string ExecuteService(string parameter)
        {
            return "定時任務已執行成功!";
        }
    }

2.在Startup的ConfigureServices方法中,新增如下程式碼:

        public void ConfigureServices(IServiceCollection services)
        {
            services.AddQuartzUI();
            services.AddQuartzClassJobs(); //新增本地排程任務訪問
        }

3.執行專案,並新增測試排程任務,如圖:

 

 

4.啟動任務,並立即執行,如動圖所示:

 

這樣,我們就完成了本地定時任務的呼叫啦~

 

 

 

 

 

 

 

 

 

 

 

 

相關文章