triggerJob主要是用於執行一次任務的場景,傳入jobKey即可啟動該任務,在scheduler的api中有兩個重載的方法,第一個參數為JobKey的方法,測試過,沒有什麼大問題,問題在於第二個方法,多了一個JobDataMap的參數,請問這個參數在Job實現類裡面如何獲取,我試過用context去取,結果發現context為null,還請高手賜教。
//調用類
Trigger trigger = scheduler.getTrigger(TriggerKey.triggerKey("some-trigger", "group"));
//這裡,trigger和job都具有jobDataMap,均嘗試過,仍然無法在job實現類中獲取參數
JobDataMap jobDataMap = trigger.getJobDataMap();
jobDataMap.put("param1",some-value1);
jobDataMap.put("param2",some-value2);
scheduler.triggerJob(JobKey.jobKey("some-job", "group"), jobDataMap);
//job實現類
public void execute(JobExecutionContext jobExecutionContext)
throws JobExecutionException {
this.context = jobExecutionContext;
// 使用triggerJob啟動任務的時候,我發現context==null
// 和一般情況使用scheduleJob傳入JobDataMap的情況不一樣
}
下面是API
void triggerJob(JobKey jobKey)
Trigger the identified JobDetail (execute it now).
void triggerJob(JobKey jobKey, JobDataMap data)
Trigger the identified JobDetail (execute it now).
居然沒有刪除功能,結貼吧。。。