@Nullable JobDetail getQuartzJob(final JobRunnerKey jobRunnerKey) { try { return getScheduler().getJobDetail(jobRunnerKey.toString(), QUARTZ_JOB_GROUP); } catch (SchedulerException se) { logWarn("Error getting quartz job details for '{}'", jobRunnerKey, se); return null; } }
@Nonnull @Override public Collection<ClusteredJob> findByJobRunnerKey(final JobRunnerKey jobRunnerKey) { final List<OfBizClusteredJob> list = Select.from(CLUSTERED_JOB) .whereEqual(JOB_RUNNER_KEY, jobRunnerKey.toString()) .runWith(entityEngine) .asList(); return ImmutableList.copyOf(list); }
boolean deleteJob(final JobRunnerKey jobRunnerKey) { try { return getScheduler().deleteJob(jobRunnerKey.toString(), QUARTZ_JOB_GROUP); } catch (SchedulerException se) { logWarn("Error removing Quartz job for '{}'", jobRunnerKey, se); return false; } }
Trigger[] getTriggersOfJob(final JobRunnerKey jobRunnerKey) { try { return getScheduler().getTriggersOfJob(jobRunnerKey.toString(), QUARTZ_JOB_GROUP); } catch (SchedulerException se) { throw unchecked("Could not get the triggers from Quartz", se); } }
void scheduleJob(final JobRunnerKey jobRunnerKey, final Trigger trigger) throws SchedulerServiceException { if (getQuartzJob(jobRunnerKey) != null) { trigger.setJobGroup(QUARTZ_JOB_GROUP); trigger.setJobName(jobRunnerKey.toString()); scheduleJob(trigger); return; } try { final JobDetail quartzJob = new JobDetail(); quartzJob.setGroup(QUARTZ_JOB_GROUP); quartzJob.setName(jobRunnerKey.toString()); quartzJob.setJobClass(Quartz1Job.class); quartzJob.setDurability(false); getScheduler().scheduleJob(quartzJob, trigger); } catch (SchedulerException se) { throw checked("Unable to create the Quartz job and trigger", se); } }
@Override public Map<String, Object> fieldMapFrom(final OfBizClusteredJob value) { final FieldMap fields = new FieldMap() .add(ID, value.getId()) .add(JOB_ID, value.getJobId().toString()) .add(JOB_RUNNER_KEY, value.getJobRunnerKey().toString()) .add(NEXT_RUN, toLong(value.getNextRunTime())) .add(VERSION, value.getVersion()) .add(PARAMETERS, value.getRawParameters()); addScheduleInfo(fields, value.getSchedule()); return fields; }