List of usage examples for org.springframework.scheduling.support PeriodicTrigger PeriodicTrigger
public PeriodicTrigger(long period, @Nullable TimeUnit timeUnit)
From source file:org.apache.shiro.session.mgt.scheduler.SpringSessionValidationScheduler.java
/** * Starts session validation by creating a spring PeriodicTrigger. *///w ww. jav a2 s . c o m public void enableSessionValidation() { enabled = true; if (log.isDebugEnabled()) { log.debug("Scheduling session validation job using Spring Scheduler with " + "session validation interval of [" + sessionValidationInterval + "]ms..."); } try { PeriodicTrigger trigger = new PeriodicTrigger(sessionValidationInterval, TimeUnit.MILLISECONDS); trigger.setInitialDelay(sessionValidationInterval); scheduler.schedule(new Runnable() { @Override public void run() { if (enabled) { sessionManager.validateSessions(); } } }, trigger); this.enabled = true; if (log.isDebugEnabled()) { log.debug("Session validation job successfully scheduled with Spring Scheduler."); } } catch (Exception e) { if (log.isErrorEnabled()) { log.error( "Error starting the Spring Scheduler session validation job. Session validation may not occur.", e); } } }
From source file:eu.openanalytics.rsb.component.DirectoryDepositHandler.java
@PostConstruct public void setupChannelAdapters() { final List<DepositDirectoryConfiguration> depositDirectoryConfigurations = getConfiguration() .getDepositRootDirectories(); if ((depositDirectoryConfigurations == null) || (depositDirectoryConfigurations.isEmpty())) { return;// w ww . j ava 2 s. c o m } final NioFileLocker nioFileLocker = new NioFileLocker(); for (final DepositDirectoryConfiguration depositDirectoryConfiguration : depositDirectoryConfigurations) { final PeriodicTrigger fileTrigger = new PeriodicTrigger( depositDirectoryConfiguration.getPollingPeriod(), TimeUnit.MILLISECONDS); fileTrigger.setInitialDelay(5000L); final File depositRootDirectory = depositDirectoryConfiguration.getRootDirectory(); final FileReadingMessageSource fileMessageSource = new FileReadingMessageSource(); fileMessageSource.setAutoCreateDirectory(true); fileMessageSource.setBeanFactory(beanFactory); fileMessageSource.setBeanName("rsb-deposit-dir-ms-" + depositRootDirectory.getPath()); fileMessageSource.setDirectory(new File(depositRootDirectory, Configuration.DEPOSIT_JOBS_SUBDIR)); fileMessageSource.setFilter(zipJobFilter); fileMessageSource.setLocker(nioFileLocker); fileMessageSource.afterPropertiesSet(); final HeaderSettingMessageSourceWrapper<File> messageSource = new HeaderSettingMessageSourceWrapper<File>( fileMessageSource, DIRECTORY_CONFIG_HEADER_NAME, depositDirectoryConfiguration); final SourcePollingChannelAdapter channelAdapter = new SourcePollingChannelAdapter(); channelAdapter.setBeanFactory(beanFactory); channelAdapter.setBeanName("rsb-deposit-dir-ca-" + depositRootDirectory.getPath()); channelAdapter.setOutputChannel(directoryDepositChannel); channelAdapter.setSource(messageSource); channelAdapter.setTrigger(fileTrigger); channelAdapter.afterPropertiesSet(); channelAdapter.start(); getLogger().info("Started channel adapter: " + channelAdapter); channelAdapters.add(channelAdapter); } }
From source file:eu.openanalytics.rsb.component.EmailDepositHandler.java
@PostConstruct public void setupChannelAdapters() throws URISyntaxException { final List<DepositEmailConfiguration> depositEmailConfigurations = getConfiguration() .getDepositEmailAccounts();/* www .ja va 2 s. c o m*/ if ((depositEmailConfigurations == null) || (depositEmailConfigurations.isEmpty())) { return; } for (final DepositEmailConfiguration depositEmailConfiguration : depositEmailConfigurations) { final PeriodicTrigger trigger = new PeriodicTrigger(depositEmailConfiguration.getPollingPeriod(), TimeUnit.MILLISECONDS); trigger.setInitialDelay(5000L); AbstractMailReceiver mailReceiver = null; final URI emailAccountURI = depositEmailConfiguration.getAccountURI(); if (StringUtils.equals(emailAccountURI.getScheme(), "pop3")) { mailReceiver = new Pop3MailReceiver(emailAccountURI.toString()); } else if (StringUtils.equals(emailAccountURI.getScheme(), "imap")) { mailReceiver = new ImapMailReceiver(emailAccountURI.toString()); ((ImapMailReceiver) mailReceiver).setShouldMarkMessagesAsRead(true); } else { throw new IllegalArgumentException("Invalid email account URI: " + emailAccountURI); } mailReceiver.setBeanFactory(beanFactory); mailReceiver.setBeanName("rsb-email-ms-" + emailAccountURI.getHost() + emailAccountURI.hashCode()); mailReceiver.setShouldDeleteMessages(true); mailReceiver.setMaxFetchSize(1); mailReceiver.afterPropertiesSet(); final MailReceivingMessageSource fileMessageSource = new MailReceivingMessageSource(mailReceiver); final HeaderSettingMessageSourceWrapper<javax.mail.Message> messageSource = new HeaderSettingMessageSourceWrapper<javax.mail.Message>( fileMessageSource, EMAIL_CONFIG_HEADER_NAME, depositEmailConfiguration); final SourcePollingChannelAdapter channelAdapter = new SourcePollingChannelAdapter(); channelAdapter.setBeanFactory(beanFactory); channelAdapter.setBeanName("rsb-email-ca-" + emailAccountURI.getHost() + emailAccountURI.hashCode()); channelAdapter.setOutputChannel(emailDepositChannel); channelAdapter.setSource(messageSource); channelAdapter.setTrigger(trigger); channelAdapter.afterPropertiesSet(); channelAdapter.start(); getLogger().info("Started channel adapter: " + channelAdapter); channelAdapters.add(channelAdapter); } }
From source file:com.devnexus.ting.config.MailNotificationConfig.java
@Bean(name = PollerMetadata.DEFAULT_POLLER) public PollerMetadata defaultPoller() { PollerMetadata pollerMetadata = new PollerMetadata(); pollerMetadata.setTrigger(new PeriodicTrigger(1, TimeUnit.SECONDS)); return pollerMetadata; }
From source file:org.jasig.ssp.service.impl.ScheduledTaskWrapperServiceImpl.java
protected Trigger tryExpressionAsPeriodicTrigger(String configValue) throws BadTriggerConfigException { BadTriggerConfigException longParseException = null; try {/* w w w .j a v a2 s . c om*/ final long period = Long.parseLong(configValue); if (period < 0) { return new DisabledTrigger(); } // millis since that's what @Scheduled methods were historically // configured in return new PeriodicTrigger(period, TimeUnit.MILLISECONDS); } catch (NumberFormatException e) { longParseException = new BadTriggerConfigException( "Config [" + configValue + "] did not parse to a long.", configValue, e); } catch (IllegalArgumentException e) { longParseException = new BadTriggerConfigException( "Config [" + configValue + "] could not be used to initialize a PeriodicTrigger", configValue, e); } final Matcher matcher = PERIODIC_TRIGGER_WITH_INITIAL_DELAY_PATTERN.matcher(configValue); if (!(matcher.matches())) { throw new BadTriggerConfigException("Trigger expression could not be parsed as either a" + " simple period or as a period with an initial " + "offset. Original parse failure: [" + longParseException.getMessage() + "]. To be considered a period with an offset, " + "the expression must match this regexp" + "(without brackets): [" + PERIODIC_TRIGGER_WITH_INITIAL_DELAY_PATTERN + "]", configValue); } try { final String periodStr = matcher.group(1); final long periodLong = Long.parseLong(periodStr); if (periodLong < 0) { return new DisabledTrigger(); } final String offsetStr = matcher.group(2); final long offsetLong = Long.parseLong(offsetStr); final PeriodicTrigger trigger = new PeriodicTrigger(periodLong, TimeUnit.MILLISECONDS); trigger.setInitialDelay(offsetLong); return trigger; } catch (NumberFormatException e) { throw new BadTriggerConfigException("Trigger expression could not be parsed as either a" + " simple period or as a period with an initial " + "offset. Original parse failure: [" + longParseException.getMessage() + "]. To be considered a period with an initial " + "delay, the expression must match this regexp" + "(without brackets): [" + PERIODIC_TRIGGER_WITH_INITIAL_DELAY_PATTERN + "]", configValue, e); } catch (IllegalArgumentException e) { throw new BadTriggerConfigException( "Trigger expression parsed as a period [{}] with an " + "initial delay [{}] but could not be used to " + "initialize a PeriodicTrigger", configValue, e); } }
From source file:org.springframework.cloud.stream.app.trigger.TriggerConfiguration.java
@Bean(name = TriggerConstants.TRIGGER_BEAN_NAME) @Conditional(PeriodicTriggerCondition.class) public Trigger periodicTrigger() { PeriodicTrigger trigger = new PeriodicTrigger(triggerProperties.getFixedDelay(), triggerProperties.getTimeUnit()); trigger.setInitialDelay(triggerProperties.getInitialDelay()); return trigger; }