4

一行代码完成定时任务调度,基于Quartz的UI可视化操作组件 GZY.Quartz.MUI

 2 years ago
source link: https://www.cnblogs.com/GuZhenYin/p/15745002.html
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

之前发布过第一个版本,有兴趣的可以去看看:

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.启动任务,并立即执行,如动图所示:

这样,我们就完成了本地定时任务的调用啦~


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK