Giriş
Şu satırı dahil
ederiz.
import org.quartz.JobBuilder;
import org.quartz.JobDetail;
Kullanım
JobBuilder bir
JobDetail nesnesi döndürür.
JobDetail için açıklama
şöyle
It is an object that contains information for executing the Job. Includes Job name, group, JobDataMap attribute, etc
Aşağıdaki metodların hepsi çağrılır ve en sonunda build() çağrısı ile bir JobDetail döndürülür
newJob() metodu ile çalıştırılacak işin Class bilgisi belirtilir.
usingJobData() metodu ile çalıştırılacak işe geçilecek parametreler belirtilir.
withIdentity() işe çalıştırılacak işe bir isim verilir.
withDescription() işe çalıştırılacak işe bir açıklama verilir.
Örnek
public <T extends Job> JobDetail buildJobDetail(Class<? extends Job> job,
SampleJobRequest request) {
JobDataMap jobDataMap = new JobDataMap(); // job Data Map
jobDataMap.put("executeCount", 1); // put Data
return JobBuilder.newJob(job)
.withIdentity(request.getJobName())
.withDescription(request.getJobDescription())
.usingJobData(jobDataMap)
.build();
}
usingJobData metodu - JobDataMap
JobDataMap için açıklama
şöyle
The JobDataMap is an object that stores information that is available when the Job instance runs
Örnek
import org.quartz.JobBuilder;
import org.quartz.JobDataMap;
import org.quartz.JobDetail;
JobDetail buildJobDetail(ScheduleEmailRequest scheduleEmailRequest) {
JobDataMap jobDataMap = new JobDataMap();
jobDataMap.put("email", scheduleEmailRequest.getEmail());
jobDataMap.put("subject", scheduleEmailRequest.getSubject());
jobDataMap.put("body", scheduleEmailRequest.getBody());
return JobBuilder.newJob(EmailJob.class)
.withIdentity(UUID.randomUUID().toString(), "email-jobs")
.withDescription("Send Email Job")
.usingJobData(jobDataMap)
.storeDurably()
.build();
}
withIdentity metodu - JobKey
Örnek
import org.quartz.Job;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
public class DatabaseBackup implements Job {
@Override
public void execute(JobExecutionContext context) throws JobExecutionException {
...
}
}
Scheduler scheduler = ...;
String cronExpression = ...;
JobKey jobKey = new JobKey("databasejob", "databasegroup");
JobDetail job = JobBuilder.newJob(DatabaseBackup.class)
.withIdentity(jobKey)
.build();
ScheduleBuilder scheduleBuilder = CronScheduleBuilder.cronSchedule(cronExpression);
Trigger trigger = new Trigger()
.withIdentity("databasetrigger", "databasegroup")
.startNow()
.withSchedule(scheduleBuilder)
.build();
try {
scheduler.scheduleJob(job, trigger);
System.out.println(trigger.getKey().getName() + " " + trigger.getNextFireTime());
} catch (SchedulerException ex) {
...
}
withIdentity metodu - String + String
ÖrnekŞöyle
yaparızJobDetail job = JobBuilder.newJob(MyJob.class)
.withIdentity("myJobName", "myGroup").build();