パラメータをジョブに直接渡すことはできません。 代わりに、使用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);
}
}
はそれが役に立てば幸い!
私はあなたの視点を見ていますが、私はquartz jobdetailのメソッドnewJobを再定義したいと思います。それが可能だ? –
さて、それがシステムの仕組みです。これを変更したい場合は、ソースコードから始める必要があると思います。明らかにそれは可能ですが、おそらくそれはちょっと高価ですね。 –
はい...この方法は大きすぎます。 –