Quartz:向Job傳遞數據

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

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

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

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

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

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

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

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

相關文章
相關標籤/搜索