/** * @see CronTriggerFactoryBean#setGroup(String) * @param group * @return */ public QuartzCronTriggerBuilder group(String group) { triggerFactoryBean.setGroup(group); return this; } /**
@Inject @Bean(name = "cleanUpCronTriggerFactoryBean") public CronTriggerFactoryBean cronTriggerFactoryBean(ApplicationConfiguration configuration) { CronTriggerFactoryBean factory = new CronTriggerFactoryBean(); factory.setJobDetail(jobDetailFactoryBean().getObject()); factory.setCronExpression(configuration.getCronExpressionForOldData()); factory.setGroup(TRIGGER_GROUP); factory.setName(CLEAN_UP_TRIGGER_NAME); return factory; }
/** * 매일 새벽 1시에 실행 * * @return */ @Bean public CronTriggerFactoryBean notebookKillKernelTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(notebookKillKernelJob().getObject()); triggerFactory.setName("kill-notebook-kernel-trigger"); triggerFactory.setGroup(JOB_GROUP_CLEANER); triggerFactory.setCronExpression("0 0 1 1/1 * ? *"); return triggerFactory; }
/** * 3시간에 한번씩 수행 * * @return */ @Bean public CronTriggerFactoryBean calculatePopularityTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(calculatePopularityJob().getObject()); triggerFactory.setName("calculate-popularity-trigger"); triggerFactory.setGroup(JOB_GROUP_DOMAIN); triggerFactory.setCronExpression("0 0 0/3 1/1 * ? *"); return triggerFactory; }
@Override public Trigger buildTrigger(JobTrigger jobTrigger, JobDetail jobDetail) { Preconditions.checkArgument(isApplicable(jobTrigger.getClass()), "Not supported jobTrigger type: " + jobTrigger.getClass()); cronTriggerFactoryBean.setCronExpression(((CronJobTrigger) jobTrigger).getCronExpression()); cronTriggerFactoryBean.setJobDetail(jobDetail); cronTriggerFactoryBean.setGroup(jobDetail.getKey().getGroup()); cronTriggerFactoryBean.setName(jobDetail.getKey().getName()); Map<String, Object> triggerInstance = new HashMap<String, Object>(); triggerInstance.put(JOB_TRIGGER_CLASS, CronJobTrigger.class.getName()); triggerInstance.put(JOB_TRIGGER_INSTANCE, convertToList((CronJobTrigger) jobTrigger)); jobDetail.getJobDataMap().putAll(triggerInstance); // This not work // cronTriggerFactoryBean.setJobDataAsMap(triggerInstance); try { cronTriggerFactoryBean.afterPropertiesSet(); } catch (ParseException e) { throw new GeneralServiceException(e); } return cronTriggerFactoryBean.getObject(); }
/** * 10분에 한번씩 데이터 소스 체크 * * @return */ @Bean public CronTriggerFactoryBean tempDataSourceCleanTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(tempDataSourceCleanJob().getObject()); triggerFactory.setStartDelay(20000); triggerFactory.setName("temporary-cleaner-trigger"); triggerFactory.setGroup(JOB_GROUP_CLEANER); triggerFactory.setCronExpression("0 0/10 * 1/1 * ? *"); return triggerFactory; }
/** * 5분에 한번식 데이터 소스 체크 * * @return */ @Bean public CronTriggerFactoryBean dataSourceCheckTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(dataSourceCheckJob().getObject()); triggerFactory.setStartDelay(10000); triggerFactory.setName("check-datasource-trigger"); triggerFactory.setGroup(JOB_GROUP_CHECK); triggerFactory.setCronExpression("0 0/5 * 1/1 * ? *"); return triggerFactory; }
/** * 10분에 한번씩 데이터 소스 체크 * * @return */ @Bean public CronTriggerFactoryBean dataSourceSizeCheckTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(dataSourceSizeCheckJob().getObject()); triggerFactory.setStartDelay(20000); triggerFactory.setName("check-datasource-size-trigger"); triggerFactory.setGroup(JOB_GROUP_CHECK); triggerFactory.setCronExpression("0 0/10 * 1/1 * ? *"); return triggerFactory; }
/** * 매 30분마다 실행 * * @return */ @Bean public CronTriggerFactoryBean timeoutWorkbenchConnectionCloseTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(timeoutWorkbenchConnectionCloseJob().getObject()); triggerFactory.setStartDelay(1000); triggerFactory.setName("timeout-connection-close-trigger"); triggerFactory.setGroup(JOB_GROUP_DOMAIN); triggerFactory.setCronExpression("0 0/30 * 1/1 * ? *"); return triggerFactory; }
/** * 1분에 한번씩 데이터 적재 작업 체크 * * @return */ @Bean public CronTriggerFactoryBean dataSourceIngestionCheckTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(dataSourceIngestionCheckJob().getObject()); triggerFactory.setStartDelay(10000); triggerFactory.setName("check-ingestion-task"); triggerFactory.setGroup(JOB_GROUP_CHECK); triggerFactory.setCronExpression("0 0/1 * 1/1 * ? *"); return triggerFactory; }
/** * 매일 새벽 2시에 실행 * * @return */ @Bean public CronTriggerFactoryBean tempCSVFileCleanTrigger(){ CronTriggerFactoryBean triggerFactory = new CronTriggerFactoryBean(); triggerFactory.setJobDetail(tempCSVFileCleanJob().getObject()); triggerFactory.setStartDelay(20000); triggerFactory.setName("temporary-csv-cleaner-trigger"); triggerFactory.setGroup(JOB_GROUP_CLEANER); triggerFactory.setCronExpression("0 0 2 1/1 * ? *"); return triggerFactory; }
/** * 根据参数,创建对应的CronTrigger对象 * * @param job * @param time * @param name * @param groupName * @param description * @return */ public static CronTrigger createCronTrigger(JobDetail job, String time, String name, String groupName, String description) { factoryBean.setName(name); factoryBean.setJobDetail(job); factoryBean.setCronExpression(time); factoryBean.setDescription(description); factoryBean.setGroup(groupName); try { factoryBean.afterPropertiesSet(); } catch (ParseException e) { e.printStackTrace(); } return factoryBean.getObject(); } }
// Create Job JobDetailFactoryBean JobDetail = new JobDetailFactoryBean(); jobDetail.setJobClass(ScheduledJob.class); jobDetail.setName("reportJob1"); jobDetail.setDurability(true); jobDetail.setJobDataMap(new JobDataMap()); jobDetail.afterPropertiesSet(); // create CRON Trigger CronTriggerFactoryBean trigger = new CronTriggerFactoryBean(); trigger.setBeanName("UniqueCronBeanName"); trigger.setGroup("uniqueCronGroup"); trigger.setJobDetail(jobDetail.getObject()); trigger.setCronExpression("0 0 12 * * ?"); trigger.afterPropertiesSet();
// Create Job JobDetailFactoryBean JobDetail = new JobDetailFactoryBean(); jobDetail.setJobClass(ScheduledJob.class); jobDetail.setName("reportJob1"); jobDetail.setDurability(true); jobDetail.setJobDataMap(new JobDataMap()); jobDetail.afterPropertiesSet(); // create CRON Trigger CronTriggerFactoryBean trigger = new CronTriggerFactoryBean(); trigger.setBeanName("UniqueCronBeanName"); trigger.setGroup("uniqueCronGroup"); trigger.setJobDetail(jobDetail.getObject()); trigger.setCronExpression("0 0 12 * * ?"); trigger.afterPropertiesSet();
public CronTriggerFactoryBean cronTriggerFactoryBean(JobDetailFactoryBean jobDetailFactory, Long id, String cronExpression, Date startDateTime, Date enddatetime) throws ParseException { CronTriggerFactoryBean cronTriggerFactory = new CronTriggerFactoryBean(); cronTriggerFactory.setJobDetail(jobDetailFactory.getObject()); cronTriggerFactory.setStartDelay(3000); cronTriggerFactory.setName(triggerName + "_" + id); cronTriggerFactory.setGroup(groupName); logger.debug(EELFLoggerDelegate.debugLogger, triggerName + " Scheduled: " + cronExpression); cronTriggerFactory.setCronExpression( cronExpression); //"0 * * * * ? *" cronTriggerFactory.afterPropertiesSet(); final CronTriggerImpl cronTrigger = (CronTriggerImpl) cronTriggerFactory.getObject(); cronTrigger.setStartTime(startDateTime == null ? Calendar.getInstance().getTime() : startDateTime); cronTrigger.setEndTime(enddatetime); Date fireAgainTime = cronTrigger.getFireTimeAfter(cronTrigger.getStartTime()); if (fireAgainTime == null) throw new IllegalArgumentException("Cron not added as it may not fire again " + " Expr: " + cronExpression + " End Time: " + cronTrigger.getEndTime()); return cronTriggerFactory; }
factoryBean.setName(triggerName); if (!StringUtils.isBlank(cronTrigger.group())) { factoryBean.setGroup(cronTrigger.group());