private static JobConfig getJobConfig(final Long subscriptionId, final Schedule schedule) { return JobConfig.forJobRunnerKey(JobRunnerKey.of(JOB_RUNNER_KEY)) .withSchedule(schedule) .withParameters(ImmutableMap.<String, Serializable>of(SUBSCRIPTION_IDENTIFIER, subscriptionId)); }
@Override public void triggerPoll(final long directoryID, final SynchronisationMode synchronisationMode) { JobConfig config = JobConfig.forJobRunnerKey(JOB_RUNNER_KEY) .withRunMode(RUN_ONCE_PER_CLUSTER) .withSchedule(Schedule.runOnce(null)) .withParameters(ImmutableMap.<String, Serializable>of("DIRECTORY_ID", directoryID)); try { schedulerService.scheduleJobWithGeneratedId(config); } catch (SchedulerServiceException e) { throw new RuntimeException(e); } }
@Override @Nonnull public Status scheduleDelayedUpgrades(final int delayMins, final boolean isAllowReindex) { final Schedule schedule = Schedule.runOnce(DateTime.now().plusMinutes(delayMins).toDate()); JobConfig jobConfig = JobConfig.forJobRunnerKey(JOB_RUNNER_KEY) .withSchedule(schedule) .withParameters(ImmutableMap.<String, Serializable>of(REINDEX_ALLOWED_PROPERTY, isAllowReindex)); try { schedulerService.scheduleJob(JOB_ID, jobConfig); } catch (SchedulerServiceException e) { log.error( "Unable to schedule upgrade tasks for future execution :" + e, e); final Collection<String> errors = ImmutableList.of( "Unable to schedule upgrade tasks for future execution: " + e.getMessage() + '\n' + ExceptionUtils.getStackTrace(e)); return new Status(errors); } return Status.OK; }
@Nullable private JobRunnerResponse validateJobConfig() { try { jobConfig = JobConfig.forJobRunnerKey(jobDetails.getJobRunnerKey()) .withRunMode(jobDetails.getRunMode()) .withSchedule(jobDetails.getSchedule()) .withParameters(jobDetails.getParameters()); return null; } catch (SchedulerRuntimeException sre) { return aborted(jobDetails.toString()); } }
@Override public void runNow(final long serviceId) throws Exception { JiraServiceContainer jiraServiceContainer = getServiceWithId(serviceId); if (jiraServiceContainer == null) { throw new ServiceException("Service with id '" + serviceId + "' was not found"); } JobConfig config = JobConfig.forJobRunnerKey(SERVICE_JOB_KEY) .withSchedule(Schedule.runOnce(null)) .withRunMode(RunMode.RUN_ONCE_PER_CLUSTER) .withParameters(ImmutableMap.<String, Serializable>of(SERVICE_ID_KEY, serviceId)); JobId jobId = schedulerService.scheduleJobWithGeneratedId(config); LOG.debug("JIRA Service '" + jiraServiceContainer.getName() + "' scheduled for immediate execution with job id '" + jobId + '\''); }
.withParameters(ImmutableMap.<String, Serializable>of( JiraJobRunnerWrapper.JOB_CLASS_CANONICAL_NAME, jobClass.getCanonicalName())) .withSchedule(schedule);
@Override public void addPoller(final DirectoryPoller poller) throws DirectoryMonitorRegistrationException { final Date oneMinuteFromNow = new DateTime().plusMinutes(1).toDate(); final JobConfig config = JobConfig.forJobRunnerKey(JOB_RUNNER_KEY) .withRunMode(RUN_ONCE_PER_CLUSTER) .withSchedule(Schedule.forInterval(poller.getPollingInterval() * 1000, oneMinuteFromNow)) .withParameters(ImmutableMap.<String, Serializable>of(DIRECTORY_ID, poller.getDirectoryID())); try { schedulerService.scheduleJob(getJobId(poller), config); } catch (SchedulerServiceException e) { throw new DirectoryMonitorRegistrationException(e); } }
private void scheduleSimpleJob(final JiraServiceContainer jiraServiceContainer) throws SchedulerServiceException { // Work out the fire time delay. Date nextFireTime = null; long lastRunMillis = jiraServiceContainer.getLastRun(); final long nextRunMillis = lastRunMillis > 0 ? lastRunMillis + jiraServiceContainer.getDelay() : System.currentTimeMillis(); final boolean localService = jiraServiceContainer.isLocalService(); if (nextRunMillis > System.currentTimeMillis()) { nextFireTime = new Date(nextRunMillis); } JobConfig config = JobConfig.forJobRunnerKey(SERVICE_JOB_KEY) .withSchedule(Schedule.forInterval(jiraServiceContainer.getDelay(), nextFireTime)) .withRunMode(localService ? RunMode.RUN_LOCALLY : RunMode.RUN_ONCE_PER_CLUSTER) .withParameters(ImmutableMap.<String, Serializable>of(SERVICE_ID_KEY, jiraServiceContainer.getId())); schedulerService.scheduleJob(toJobId(jiraServiceContainer.getId()), config); }
private void scheduleCronJob(final JiraServiceContainer jiraServiceContainer) throws SchedulerServiceException { final boolean localService = jiraServiceContainer.isLocalService(); JobConfig config = JobConfig.forJobRunnerKey(SERVICE_JOB_KEY) .withSchedule(Schedule.forCronExpression(jiraServiceContainer.getCronExpression())) .withRunMode(localService ? RunMode.RUN_LOCALLY : RunMode.RUN_ONCE_PER_CLUSTER) .withParameters(ImmutableMap.<String, Serializable>of(SERVICE_ID_KEY, jiraServiceContainer.getId())); schedulerService.scheduleJob(toJobId(jiraServiceContainer.getId()), config); }