0%

Quartz 自己整理的一些方法

通过自己的研究结合百度整理的 Quartz 命令

scheduler

方法名 参数 说明
Start() 启动触发 itrigger 的 IScheduler 线程。当调度程序第一次创建时,它处于“待机”模式,不会触发触发器。还可以通过调用 IScheduler 将调度程序置于待机模式。备用 (System.Threading.CancellationToken) 方法
ShutDown() 停止 IScheduler 的触发 ITriggers, 并清理所有与 Scheduler 相关的资源。等同于 Shutdown (false)
ScheduleJob() job,tirgger 将给定的 JobDetail 添加到 Scheduler 中,并将给定的 ITrigger 与之关联

Job

方法名 参数 说明
SetJobData() JobDataMap 用给定的 JobDataMap 替换 IJobDetail 的 JobDataMap
StoreDurably() bool 默认情况下,Job 没有对应的 Trigger 时,Job 是不能直接被加入调度器中的,或者在 Trigger 过期之后,没有关联 Trigger 的 Job 也会被删除。可以通过 JobBuilder 的 StoreDurably 使 Job 独立存储于调度器中
WithDescription() string 设置给定的(对人有意义的)工作描述

Tirgger

方法名 参数 说明
StartNow() 将触发器应该启动的时间设置为当前时刻,触发器可能在此时触发,也可能不触发,这取决于为触发器配置的时间表
UsingJobData() string,string 将给定的键值对添加到 JobDetail 的 JobDataMap 中
WithIdentity() string,string 使用具有给定名称和组的 TriggerKey 来标识触发器
WithCronSchedule() string 通过 Cron 表达式来设置执行时间与周期
StartAt() DateTime 设置触发器应该开始的时间——触发器可能在这个时候触发,也可能不触发——这取决于为触发器配置的时间表。然而,在此时间之前,触发器将不会发射,无论触发器的时间表
EndAt() DateTime 设置触发器不再触发的时间,即使它的时间表有剩余的重复
ForJob() JobKey 用名称、组字符串标识作业
WithPriority() 1~10 当多个 Trigger 在同一个时间点触发一个 Job 的时候,可以通过设置 Trigger 优先级来控制执行顺序,Trigger 默认的优先级是 5, 值越大优先级越高,最高 10
Build() 产生触发
WithSimpleSchedule() 箭头函数 通过 WithSimpleSchedule 可以设置 Job 执行的周期及执行的次数,不过循环周期基本是局限于 时、分、秒
WithCalendarIntervalSchedule() 箭头函数 针对 WithSimpleSchedule 做了一定的扩展,可以支持 年、月、周、日、时、分、秒及夏令时设置
WithDailyTimeIntervalSchedule() 箭头函数 支持更精确的时间配置,可选每天、周末、工作日、周几,并指定的时间范围及执行时间周期,相比前面两种方式更加灵活

WithSimpleSchedule

方法名 参数 说明
WithInterval() int 指定以毫秒为单位的重复间隔
WithIntervalInSeconds() int 指定以秒为单位的重复间隔
WithIntervalInMinutes() int 指定以分为单位的重复间隔
WithIntervalInHours() int 指定以小时为单位的重复间隔
WithRepeatCount() int 指定触发器将重复的次数-总次数将是这个数字+1
RepeatForever() 指定触发器将无限重复

WithCalendarIntervalSchedule

方法名 参数 说明
WithIntervalInDays() int 指定以天为单位的重复间隔
WithIntervalInWeeks() int 指定以周为单位的重复间隔
WithIntervalInMonths() int 指定以月为单位的重复间隔
WithIntervalInYears() int 指定以年为单位的重复间隔

WithDailyTimeIntervalSchedule

方法名 参数 说明
StartingDailyAt() TimeOfDay 触发器每天启动的时间
EndingDailyAt() TimeOfDay 触发器每天结束的时间
EndingDailyAfterCount() int 使用计数、间隔和 StarTimeOfDay 计算和设置 EndTimeOfDay。这意味着这些必须在调用此方法之前设置
OnMondayThroughFriday() 将触发器设置为从周一到周五的每一天
OnSaturdayAndSunday() 将触发器设置在星期六和星期天
OnEveryDay() 将触发器设置为一周中的所有日子都启动
OnDaysOfTheWeek() DayOfWeek 在一周的特定日子里设置触发点

Task

方法名 参数 说明
Delay() TimeSpan 创建在指定时间间隔后完成的任务

以上方法大多数都有重载,详情请在自己使用时查看

欢迎关注我的其它发布渠道