我参与了一个项目,但我遇到了问题。自动实例化我的对象jobdetail类型的newJob方法不能让我受益。我需要手动实例化newJob,将其作为参数传递给我选择的对象,但我不知道如何。有任何想法吗?谢谢。
答案 0 :(得分:0)
您无法直接将参数传递给作业。
相反,您可以使用JobDataMap
,它将由调度程序直接传递,如here所述。例如(在Java中):
// define the job and tie it to our DumbJob class
JobDetail job = newJob(DumbJob.class)
.withIdentity("myJob", "group1") // name "myJob", group "group1"
.usingJobData("jobSays", "Hello World!")
.usingJobData("myFloatValue", 3.141f)
.build();
而且,在工作中,您可以像这样访问地图:
public class DumbJob implements Job {
public DumbJob() {
}
public void execute(JobExecutionContext context)
throws JobExecutionException
{
JobKey key = context.getJobDetail().getKey();
JobDataMap dataMap = context.getJobDetail().getJobDataMap();
String jobSays = dataMap.getString("jobSays");
float myFloatValue = dataMap.getFloat("myFloatValue");
System.err.println("Instance " + key + " of DumbJob says: " + jobSays + ", and val is: " + myFloatValue);
}
}
希望它有所帮助!