記錄一: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分别為:等待,暫停,運作中
記錄九:分使用者啟動可以設定不同的排程器名稱來自動各自使用者的任務。這樣就不是在一個排程下工作。