使用QuertZ组件来搞项目工作流(一)
前言:抛弃windows计划,拥抱.NET组件.
每个人都喜欢监听和插件。今天,几乎下载任何开源框架,你必定会发现支持这两个概念。监听是你创建的C#类,当关键事件发生时会收到框架的回调。例如,当一个作业被调度、没有调度或触发器终止和不再触发时,这些都可以通过设置来通知你的监听器。Quartz框架包含了调度器监听、作业和触发器监听。你可以配置作业和触发器监听为全局监听或者是特定于作业和触发器的监听。
首先通过NuGet安装Quartz.NET。
如何使用?
1、实现IJob接口,定义具体要做的事情(作业)
2、使用Quartz.NET的API定义定时任务规则(规则)
3、在Application_Start注册定时任务(配置)
1.创建作业
作业继承IJob
1 2 3 4 5 6 7 | public class JobDemo : IJob { public void Execute(IJobExecutionContext context) { System.IO.File.AppendAllText( "C:/projectLog.log" , "hello quartZ" ); } } |
需要注意的是,我nuget下载的是比较老的版本,近几年的组件中该接口需要实现的方法的返回值是一个Task类型。
2.规则定义
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | public class ReportJobScheduler { public static void Start() { IScheduler scheduler = StdSchedulerFactory.GetDefaultScheduler(); scheduler.Start(); IJobDetail job = JobBuilder.Create<JobDemo>().Build(); //创建job示例 ITrigger trigger = TriggerBuilder.Create() .WithIdentity( "triggerName" , "groupName" ) .WithSimpleSchedule(t => t.WithIntervalInSeconds(5) //5秒循环 .RepeatForever()) .Build(); scheduler.ScheduleJob(job, trigger); } } |
3.配置
1 2 3 4 5 6 7 8 9 10 11 12 13 | public class MvcApplication : System.Web.HttpApplication { protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); //启用定时任务 ReportJobScheduler.Start(); } } |
这样就可以使用了!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异