ASP.NET Core MVC+Quartz实现定时任务可视化管理页面

简介: ASP.NET Core MVC+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中进行注入,才可以在启动时加载对应内容。如下所示:

using GZY.Quartz.MUI.Extensions;
using QuartzAdmin.QuartzA;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddControllersWithViews();
builder.Services.AddControllers();
//1. 添加QuartzUI服务
builder.Services.AddQuartzUI();
//2. 添加基于DLL模式的Quartz任务支持
builder.Services.AddQuartzClassJobs();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
    app.UseExceptionHandler("/Home/Error");
    // The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
    app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.UseAuthorization();
//3.使用Quartz组件
app.UseQuartz();
app.MapControllerRoute(
    name: "default",
    pattern: "{controller=Home}/{action=Index}/{id?}");
//在Use中注册单例实例
app.Use(async (context, next) =>
{
    if (next != null)
    {
        await next.Invoke();
    }
});
app.Run();

运行测试

在配置好后,运行程序,默认打开的是首页,手动输入网址https://localhost:7172/QuartzUI,即可看到Quartz管理页面,如下所示:

基于DLL的定时任务

在小型项目中,如果为了定时任务,再去创建WebAPI接口,会比较麻烦,所以基于DLL方式的任务更常见,在Quartz框架下,创建基于DLL方式的任务,需要实现IJobService接口,此接口是GZY.Quartz.MUI组件库自带的默认接口,如下所示:

using GZY.Quartz.MUI.BaseService;
namespace QuartzAdmin.QuartzA.Job
{
    public class TestJob : IJobService
    {
        public string ExecuteService(string parameter)
        {
            Console.WriteLine($"测试任务被执行了:{parameter}.");
            return String.Empty;
        }
    }
}

任务创建成功后,在页面新建任务时,选择DLL方式,会自动识别TestJob,选择即可,如下所示:

基于WebAPI的定时任务

基于WebAPI的定时任务,是所有的WebAPI接口都可以作为调用的任务,无需特殊处理。在ASP.NET Core MVC项目中,默认情况下是支持WebAPI的,首先创建测试WebAPI接口,如下所示:

using Microsoft.AspNetCore.Http;
using Microsoft.AspNetCore.Mvc;
namespace QuartzAdmin.Controllers
{
    [Route("api/[controller]/[action]")]
    [ApiController]
    public class TestApiController : ControllerBase
    {
        [HttpGet]
        public void Test(string parameters)
        {
            Console.WriteLine($"test web api {parameters},---{DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")}");
        }
    }
}

在任务管理页面,新建任务,任务类型选择API,URL就是WebAPI的接口网址,如下所示:

启动与暂停任务

默认情况下,创建的任务是停止状态,选择任务,开启任务即可。如果任务正在运行,也可以暂停任务。或者删除任务。如下所示:

查看任务执行记录

通过点击具体任务右侧的执行记录按钮,可以查看执行日志。如果有执行过程中有错误,也会显示,成功则不显示任何信息,如下所示:

好了,以上就是ASP.NET Core MVC+Quartz开发定时任务管理页面的全部内容,旨在抛砖引玉,一起学习,共同进步。

相关文章
|
4月前
|
开发框架 JavaScript 前端开发
揭秘:如何让你的asp.net页面变身交互魔术师——先施展JavaScript咒语,再引发服务器端魔法!
【8月更文挑战第16天】在ASP.NET开发中,处理客户端与服务器交互时,常需先执行客户端验证再提交数据。传统上使用ASP.NET Button控件直接触发服务器事件,但难以插入客户端逻辑。本文对比此法与改进方案:利用HTML按钮及JavaScript手动控制表单提交。后者通过`onclick`事件调用JavaScript函数`SubmitForm()`来检查输入并决定是否提交,增强了灵活性和用户体验,同时确保了服务器端逻辑的执行。
53 5
|
3月前
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
50 7
|
3月前
|
存储 开发框架 前端开发
ASP.NET MVC 迅速集成 SignalR
ASP.NET MVC 迅速集成 SignalR
80 0
|
4月前
|
开发框架 前端开发 .NET
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
ASP.NET MVC WebApi 接口返回 JOSN 日期格式化 date format
57 0
|
4月前
|
开发框架 前端开发 安全
ASP.NET MVC 如何使用 Form Authentication?
ASP.NET MVC 如何使用 Form Authentication?
|
4月前
|
开发框架 .NET
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
Asp.Net Core 使用X.PagedList.Mvc.Core分页 & 搜索
148 0
|
7月前
|
开发框架 前端开发 .NET
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
ASP.NET CORE 3.1 MVC“指定的网络名不再可用\企图在不存在的网络连接上进行操作”的问题解决过程
214 0
|
7月前
|
开发框架 前端开发 JavaScript
JavaScript云LIS系统源码ASP.NET CORE 3.1 MVC + SQLserver + Redis医院实验室信息系统源码 医院云LIS系统源码
实验室信息系统(Laboratory Information System,缩写LIS)是一类用来处理实验室过程信息的软件,云LIS系统围绕临床,云LIS系统将与云HIS系统建立起高度的业务整合,以体现“以病人为中心”的设计理念,优化就诊流程,方便患者就医。
87 0
|
7月前
|
开发框架 前端开发 .NET
C# .NET面试系列六:ASP.NET MVC
<h2>ASP.NET MVC #### 1. MVC 中的 TempData\ViewBag\ViewData 区别? 在ASP.NET MVC中,TempData、ViewBag 和 ViewData 都是用于在控制器和视图之间传递数据的机制,但它们有一些区别。 <b>TempData:</b> 1、生命周期 ```c# TempData 的生命周期是短暂的,数据只在当前请求和下一次请求之间有效。一旦数据被读取,它就会被标记为已读,下一次请求时就会被清除。 ``` 2、用途 ```c# 主要用于在两个动作之间传递数据,例如在一个动作中设置 TempData,然后在重定向到另
364 5
|
存储 开发框架 前端开发
[回馈]ASP.NET Core MVC开发实战之商城系统(五)
经过一段时间的准备,新的一期【ASP.NET Core MVC开发实战之商城系统】已经开始,在之前的文章中,讲解了商城系统的整体功能设计,页面布局设计,环境搭建,系统配置,及首页【商品类型,banner条,友情链接,降价促销,新品爆款】,商品列表页面,商品详情等功能的开发,今天继续讲解购物车功能开发,仅供学习分享使用,如有不足之处,还请指正。
176 0

相关实验场景

更多