记录一:queartz 在同时启动多个任务是,触发器名称不能设置一致,不然第二次启动会不成功
记录二:quartz 在使用任务与触发器分离写法时,任务必须要带(.StoreDurably())
IJobDetail job = JobBuilder.Create<HelloJob>()
.WithIdentity("HelloJob", "group1")
.StoreDurably()
.Build();
sched.AddJob(job, true);
记录三:quartz在使用持续化到数据库是恢复有时候会失败建议加((.RequestRecovery))
IJobDetail job = JobBuilder.Create<ServerJob>()
.WithIdentity("ServerJob", "group1")
.RequestRecovery()
.Build();
这样失败后会重新执行。
记录四:quartz使用持续化到数据库可分为有状态和无状态。区分在任务类上增加【PersistJobDataAfterExecution】特性
记录五:quartz使用持续化到数据库设置不可并发在任务类上增加【DisallowConcurrentExecution】特性。
[PersistJobDataAfterExecution] //代表当前任务是否有状态
[DisallowConcurrentExecution]//代表任务不允许并发
public class ServerJobState : ServerJob
{
}
记录六:一个job可以关联多个 trigger ,但是一个 trigger 只能关联一个job。
记录七:数据库QRTZ_JOB_DETAILS表其中字段增加解释:
//DESCRIPTION:描述
//IS_DURABLE:代表是否持久化
//IS_NONCONCURRENT:是否运行并发
//IS_UPDATE_DATA:是否有状态:false 无状态,true有状态
//REQUESTS_RECOVERY:是否执行恢复对应设置RequestRecovery方法
记录八:数据库QRTZ_TRIGGERS表字段部分解释:
借鉴地址:https://www.cnblogs.com/skyLogin/p/6915921.html
//DESCRIPTION: 触发器的描述等基本信息,
//START_TIME :开始执行时间,
//END_TIME :结束执行时间,
//PREV_FIRE_TIME: 上次执行时间,
//NEXT_FIRE_TIME: 下次执行时间,
//TRIGGER_TYPE: 触发器类型:simple和cron,
//TRIGGER_STATE: 执行状态:WAITING,PAUSED,ACQUIRED分别为:等待,暂停,运行中
记录九:分用户启动可以设置不同的调度器名称来自动各自用户的任务。这样就不是在一个调度下工作。