有兩種方法可以保證Quartz不重復執行任務:
使用JobDataMap來傳遞參數:在創建任務時,可以將任務的參數存儲在JobDataMap中。Quartz會根據JobDataMap中的參數來判斷任務是否已經執行過。如果JobDataMap的參數發生變化,Quartz會認為任務是新的,會再次執行。
使用唯一的標識符:在創建任務時,可以為每個任務分配一個唯一的標識符(JobKey)。Quartz會根據標識符來判斷任務是否已經執行過。如果相同的標識符已經存在,Quartz會認為任務是重復的,不會再次執行。
無論使用哪種方法,Quartz都會根據設定的調度規則來判斷何時執行任務。如果任務的調度規則滿足條件,但是任務已經被判斷為重復執行,則任務會被跳過,直到下一次調度符合條件時再執行。