Quartz.net笔记-简单触发器(Simple Trigger)

触发器分为:简单触发器(Simple Trigger)、触发器(Cron Trigger),一个触发器只能绑定一个任务

通用触发器属性:

  • JobKey – 当前触发器绑定任务的唯一标识符
  • StartTimeUtc – 触发器的生效开始时间
  • EndTimeUtc – 触发器的生效结束时间

触发器优先级

有些时候,你的程序中可能需要多个触发器,Quartz.NET的调度器可能在同一时间没有足够的资源来触发所有的触发器,这时候我们就需要给触发器设置优先级,让Quartz.NET帮助我们优先触发优先级高的触发器。
在声明触发器的时候,可以使用WithPriority方法为触发器指定一个优先级权重,权重越高的,调度器会优先触发。

简单触发器(Simple Trigger)

如果你的项目需求是一下2种类型,可以使用Quartz.NET中的简单触发器。

  • 在某个时间点执行一次任务
  • 在某个时间点开始执行任务,并之后每隔固定的时间,再次执行当前任务

立即执行一次就停止:

ITrigger trigger = TriggerBuilder.Create()
              .WithIdentity("firstTrigger", "group1")              
              .StartNow()             
              .Build();

在某个时间点触发一次就停止:

//该任务会在2017-07-12 15:30:00被执行
ISimpleTrigger trigger3 = (ISimpleTrigger)TriggerBuilder.Create() 
    .WithIdentity("trigger3", "group1") 
    .StartAt(new DateTime(2017, 7, 12, 15, 30, 0)) 
.Build();

在某个时间点触发触发任务,并在之后每10分钟继续触发一次:

//该任务会在2017-07-12 15:30:00被执行,然后每10分钟运行一次,永不停止
ISimpleTrigger trigger4 = (ISimpleTrigger)TriggerBuilder.Create() 
    .WithIdentity("trigger4", "group1") 
    .StartAt(new DateTime(2017, 7, 12, 15, 30, 0)) 
    .WithSimpleSchedule(x => 
    { 
        x.WithIntervalInMinutes(10); 
        x.RepeatForever(); 
    }) 
    .ForJob("job1", "group1") 
.Build();

在某个时间点开始触发任务,并在之后每10分钟继续触发一次,触发10次,直到某个时间结束:

//注意:会触发11次,因为一开始会运行1次
ISimpleTrigger trigger5 = (ISimpleTrigger)TriggerBuilder.Create() 
    .WithIdentity("trigger5", "group1") 
    .StartAt(new DateTime(2017, 7, 12, 15, 30, 0)) 
    .WithSimpleSchedule(x => 
    { 
         x.WithIntervalInMinutes(10); 
         x.WithRepeatCount(10); 
    }) 
      .EndAt(DateBuilder.DateOf(22, 0, 0))
.Build();

从当前时间开始,一定时间之后,执行一次任务:

//5分钟后触发
ISimpleTrigger trigger6 = (ISimpleTrigger)TriggerBuilder.Create() 
    .WithIdentity("trigger6", "group1") 
    .StartAt(DateBuilder.FutureDate(5, IntervalUnit.Minute)) 
    .ForJob("job1", "group1") 
.Build();

参考:https://www.cnblogs.com/lwqlun/p/9095111.html

posted @   .Neterr  阅读(566)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?

喜欢请打赏

扫描二维码打赏

了解更多

点击右上角即可分享
微信分享提示