0
夸脫的例子,通常這樣做:石英調度程序 - 使用相同類的不同作業?
JobDetail job = newJob(PrintMessageJob.class)
如何創建已經設置了一個param在運行時定義的工作嗎?這樣的事情將是很好的,但是是不允許的:
JobDetail job = newJob(new PrintMessageJob("my message"));
感謝
夸脫的例子,通常這樣做:石英調度程序 - 使用相同類的不同作業?
JobDetail job = newJob(PrintMessageJob.class)
如何創建已經設置了一個param在運行時定義的工作嗎?這樣的事情將是很好的,但是是不允許的:
JobDetail job = newJob(new PrintMessageJob("my message"));
感謝
你必須做什麼如下。
JobDetail job = newJob(PrintMessageJob.class)
.usingJobData("message", "my message")
.build();
public class PrintMessageJob implements Job {
public PrintMessageJob() {
}
public void execute(JobExecutionContext context) throws JobExecutionException
{
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String message = dataMap.getString("message");
...
}
}
Thx,這很有幫助。但是如果我的喬布斯需要操作某些對象的實例呢?我想使用JobData(「myThing」,this),但只有不可變(String,Double等)可以在該地圖中傳遞。 – Andrew
我想我可以將我需要操作的所有對象添加到靜態哈希映射中,然後在創建作業對象時傳遞鍵,以便在作業運行時可以獲取對實例進行操作的引用。這也不是很好。 – Andrew
你只應該這樣做,如果散列和哈希表中放置的對象只是不可變的。 – shazin