ASP.NET Core框架学习之Quarzt.Net

  Quartz.Net是一个从java版的Quartz移植过来的定时任务框架,可以实现异常灵活的定时任务。

  Quartz 有三个概念分别是 计划者(ISchedeler)、工作(IJob)、触发器(Trigger)。

  给计划者(Schedeler)一个工作(Job),让他在Trigger(某个条件)触发的条件下执行这个工作(Job),将要定时执行的任务代码写到实现IJob接口的Execute方法中即可使用,时间到来的时候Execute方法会被调用。

  首先安装nuget包 : Quartz

  创建Job:

复制代码
 1 public class JobTest : IJob
 2 {
 3         public Task Execute(IJobExecutionContext context)
 4         {
 5             return Task.Run(() =>
 6             {
 7                 try
 8                 {
 9                     Console.WriteLine("任务执行啦" + DateTime.Now);
10                 }
11                 catch (Exception ex)
12                 {
13                     ILog log = LogManager.GetLogger(typeof(JobTest));
14                     log.Error("定时任务出错", ex);
15                 }
16             });
17         }
18 }
创建Job
复制代码

  创建计划者,触发器:

复制代码
 1  private static void Main(string[] args)
 2 {
 3             IScheduler sched = new StdSchedulerFactory().GetScheduler().Result;//定义计划者
 4             JobDetailImpl jbBossReport = new JobDetailImpl("JobTest", typeof(JobTest));//时间到来时,执行TestJob类中的context方法。同时给该执行任务命名为jdTest
 5             var triggerBossReport = CronScheduleBuilder.CronSchedule("0/7 * * * * ?").Build(); //确定触发器
 6             triggerBossReport.Key = new TriggerKey("triggerJobTest");//触发器命名为triggerJobTest
 7             sched.ScheduleJob(jbBossReport, triggerBossReport);//计划者sched在触发器triggerBossReport执行的时候,进行jbBossReport工作。
 8             sched.Start();
 9             Console.ReadKey();
10 }
创建计划者,触发器
复制代码

执行结果:

      

  cron表达式 参考 http://cron.qqe2.com/   

 

        详细参考:https://www.cnblogs.com/MicroHeart/p/9402731.html

 

posted @   唐磊(Jason)  阅读(285)  评论(0编辑  收藏  举报
编辑推荐:
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示