Quartz:向Job傳遞數據


JobDetail job1 = newJob(MyJob.class).withIdentity("job1", "group1").build();

newJob方法其實返回一個JobBuilder實例,通過調用JobBuilder的方法配置任務屬性,最后調用build方法返回構造的任務實例(任務實例實現了JobDetail)。

每個任務其實都是一個實現了JobDetail接口的實例,這個實例每次執行都會根據當初構造它的JobBuilder配置的Class對象構造出一個新的實例。

JobDetail接口有個getJobDataMap方法能返回一個JobDataMap對象,這個對象實現了Map接口。可以用來傳遞信息給Job

JobDataMap map = job1.getJobDataMap();
map.put("key", "value");

Job中如何拿到這些數據:通過Job接口的execute方法參數能獲取到,若Job.execute(JobExecutionContext context){}則:

JobDataMap map = context.getJobDetail().getJobDataMap();
System.out.println(map.get("key"))

JobDetail只有一個,而實現Job接口的帶execute方法的類的實例卻有多個,具體也就是每次任務執行的時候會構造一個。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM