private SimpleTrigger createSimpleTrigger(String name, String groupName, boolean isVolatile, long initialDelay, long interval) { Date start = new Date(System.currentTimeMillis() + initialDelay); SimpleTrigger trigger = new SimpleTrigger(name, groupName, start, null, SimpleTrigger.REPEAT_INDEFINITELY, interval); trigger.setVolatility(isVolatile); return trigger; }
new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, scanInterval); trig.setVolatility(true);
new Date(), null, SimpleTrigger.REPEAT_INDEFINITELY, scanInterval); trig.setVolatility(true);
st.setMisfireInstruction(misFireInstr); st.setTimesTriggered(timesTriggered); st.setVolatility(volatility); st.setNextFireTime(nft); st.setPreviousFireTime(pft);
st.setMisfireInstruction(misFireInstr); st.setTimesTriggered(timesTriggered); st.setVolatility(volatility); st.setNextFireTime(nft); st.setPreviousFireTime(pft);
public void cancelRepoSync(Subject subject, Repo repo) throws SchedulerException { JobDetail jobDetail = new JobDetail(RepoSyncJob.createJobName(repo), REPO_SYNC_JOB_IMMEDIATE_GROUP_NAME, RepoSyncJob.class, false, false, false); RepoSyncJob.createJobDataMap(jobDetail, repo); SimpleTrigger trigger = new SimpleTrigger(jobDetail.getName(), jobDetail.getGroup()); trigger.setVolatility(false); SchedulerLocal scheduler = LookupUtil.getSchedulerBean(); boolean cancelled = scheduler.interrupt(RepoSyncJob.createJobName(repo), REPO_SYNC_JOB_IMMEDIATE_GROUP_NAME); getLog().info("Cancelled repo sync job [" + jobDetail.getName() + ':' + jobDetail.getGroup() + "]."); }
/** * This will syncronize the given content source, meaning its {@link PackageVersion}s will be updated and, if not * lazy-loading, will load the package versions that are not loaded yet. * * <p>Note that this will perform the sync asynchronously in a separate thread. This is because this sync operation * can potentially run for hours and we do not want to block the calling thread.</p> * * @param contentSource the content source to sync * * @throws SchedulerException if failed to schedule the job for immediate execution */ public void syncProviderNow(final ContentSource contentSource) throws SchedulerException { // Create our job with a trigger that fires immediately and doesn't repeat. // Make the name unique - we may already have our cron job schedules. // What happens if this is triggered when our cron job is triggered? the job will abort and let the current job finish JobDetail job = new JobDetail(ContentProviderSyncJob.createUniqueJobName(contentSource), CONTENT_SRC_SYNC_JOB_GROUP_NAME, ContentProviderSyncJob.class, false, false, false); JobDataMap jobDataMap = ContentProviderSyncJob.createJobDataMap(contentSource, job); jobDataMap.putAsString(ContentProviderSyncJob.DATAMAP_SYNC_IMPORTED_REPOS, true); SimpleTrigger trigger = new SimpleTrigger(job.getName(), job.getGroup()); trigger.setVolatility(false); SchedulerLocal scheduler = LookupUtil.getSchedulerBean(); Date next = scheduler.scheduleJob(job, trigger); getLog().info( "Scheduled content source sync job [" + job.getName() + ':' + job.getGroup() + "] to fire now at [" + next + "] for [" + contentSource + "]."); }
Scheduler.DEFAULT_RECOVERY_GROUP, new Date(ftRec.getFireTimestamp())); rcvryTrig.setVolatility(ftRec.isTriggerIsVolatile()); rcvryTrig.setJobName(jKey.getName()); rcvryTrig.setJobGroup(jKey.getGroup());
Scheduler.DEFAULT_RECOVERY_GROUP, new Date(ftRec.getFireTimestamp())); rcvryTrig.setVolatility(ftRec.isTriggerIsVolatile()); rcvryTrig.setJobName(jKey.getName()); rcvryTrig.setJobGroup(jKey.getGroup());