最近工作内容与定时任务相关,在实际使用Quartz过程中,有两个小问题较为困扰。
一。多个Trigger如何触发一个Job。
比如上下班打卡时推送消息,上班时间为9:30,打卡提醒时间为9:20较好。下班时间为18:30,提醒时间为18:40较好。此时用一个CronTrigger就解决不了。又不肯启动2个Job,和两个Trigger。看了几位大神的文章,都说一个Job可以有多个Trigger驱动,在多方搜索研究下,终于搞定了这个小问题。
//从工厂中获取一个调度器实例化 ISchedulerFactory factory = new StdSchedulerFactory(); IScheduler scheduler = factory.GetScheduler(); IJobDetail job1 = JobBuilder.Create<SignJob>() //创建一个即时消息作业 .WithIdentity("打卡任务", "打卡组") .Build(); ITrigger trigger1 = TriggerBuilder.Create() .WithCronSchedule("0 20 9 * * ?") .ForJob(job1)//重要 .Build(); scheduler.ScheduleJob(job1, trigger1); //把作业,触发器加入调度器。 ITrigger trigger2 = TriggerBuilder.Create() .WithCronSchedule("0 40 18 * * ?") .ForJob(job1)//重要 .Build(); scheduler.ScheduleJob(trigger2); scheduler.Start();
如此,一个Job可以有多少个Trigger了。
时间: 2024-10-06 08:24:02