打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

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

在前一篇文章,我们了解了如何通过.NET6+Quartz开发基于控制台应用程序的定时任务,今天进一步讲解基于ASP.NET Core MVC+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开发定时任务管理页面的全部内容,旨在抛砖引玉,一起学习,共同进步。

关于Quartz基础知识,可参考链接:

.NET6+Quartz实现定时任务


学习编程,从关注【老码识途】开始!!!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
基于ASP.NET MVC(C#)和Quartz.Net组件实现的定时执行任务调度
.NET Core 学习资料精选:入门
ASP.NET Core中的Controller
编程书籍阅读随谈
asp.net core 2.0 webapi集成signalr
C#/.NET/.NET Core定时任务调度的方法或者组件有哪些--Timer,FluentScheduler还是...
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服