작업에 매개 변수를 직접 전달할 수 없습니다. 대신 할 수있는 일은 JobDataMap
이며 이는 here과 같이 스케줄러에서 직접 전달합니다. (자바) 예를 들면 :
는
// 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);
}
}
는 희망이 도움이!
그래서 당신의 관점을 볼 수 있지만 나는 석영 jobdetail의 메서드 newJob을 재정의하고자합니다. 있을 수있다? –
그게 시스템 작동 방법입니다. 이 코드를 변경하려면 소스 코드에서 시작해야한다고 생각합니다. 분명히 가능할 수도 있지만 어쩌면 너무 비싸지 않을까요? –
예 ...이 방법은 너무 큽니다. –