天天看點

【Quartz】問題記錄注意事項【四】

原文: 【Quartz】問題記錄注意事項【四】

記錄一: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分别為:等待,暫停,運作中      

 記錄九:分使用者啟動可以設定不同的排程器名稱來自動各自使用者的任務。這樣就不是在一個排程下工作。