List of usage examples for org.springframework.scheduling.concurrent ThreadPoolTaskScheduler setAwaitTerminationSeconds
public void setAwaitTerminationSeconds(int awaitTerminationSeconds)
From source file:com.alliander.osgp.webdevicesimulator.application.config.AutonomousDeviceRegisterConfig.java
@Bean(destroyMethod = "shutdown") public TaskScheduler deviceRegistrationTaskScheduler() { final ThreadPoolTaskScheduler deviceRegistrationTaskScheduler = new ThreadPoolTaskScheduler(); deviceRegistrationTaskScheduler.setPoolSize( Integer.parseInt(this.environment.getRequiredProperty(PROPERTY_NAME_AUTONOMOUS_POOL_SIZE))); deviceRegistrationTaskScheduler.setThreadNamePrefix( this.environment.getRequiredProperty(PROPERTY_NAME_AUTONOMOUS_THREAD_NAME_PREFIX)); deviceRegistrationTaskScheduler.setWaitForTasksToCompleteOnShutdown(false); deviceRegistrationTaskScheduler.setAwaitTerminationSeconds(10); deviceRegistrationTaskScheduler.initialize(); deviceRegistrationTaskScheduler.schedule(this.autonomousDeviceRegister, this.autonomousDeviceRegisterTrigger()); return deviceRegistrationTaskScheduler; }
From source file:com.alliander.osgp.webdevicesimulator.application.config.AutonomousDeviceRebootConfig.java
@Bean(destroyMethod = "shutdown") public TaskScheduler deviceRebootTaskScheduler() { final ThreadPoolTaskScheduler deviceRebootTaskScheduler = new ThreadPoolTaskScheduler(); deviceRebootTaskScheduler.setPoolSize(Integer .parseInt(this.environment.getRequiredProperty(PROPERTY_NAME_AUTONOMOUS_DEVICE_REBOOT_POOL_SIZE))); deviceRebootTaskScheduler.setThreadNamePrefix( this.environment.getRequiredProperty(PROPERTY_NAME_AUTONOMOUS_DEVICE_REBOOT_THREAD_NAME_PREFIX)); deviceRebootTaskScheduler.setWaitForTasksToCompleteOnShutdown(false); deviceRebootTaskScheduler.setAwaitTerminationSeconds(10); deviceRebootTaskScheduler.initialize(); deviceRebootTaskScheduler.schedule(this.autonomousDeviceReboot, this.autonomousDeviceRebootTrigger()); return deviceRebootTaskScheduler; }
From source file:org.springframework.integration.config.SourcePollingChannelAdapterFactoryBeanTests.java
@Test public void testInterrupted() throws Exception { final CountDownLatch startLatch = new CountDownLatch(1); MessageSource<Object> ms = () -> { startLatch.countDown();/* w w w .j a va 2 s.c o m*/ try { Thread.sleep(10000); } catch (InterruptedException e) { Thread.currentThread().interrupt(); throw new MessagingException("Interrupted awaiting stopLatch", e); } return null; }; SourcePollingChannelAdapter pollingChannelAdapter = new SourcePollingChannelAdapter(); ThreadPoolTaskScheduler taskScheduler = new ThreadPoolTaskScheduler(); taskScheduler.setWaitForTasksToCompleteOnShutdown(true); taskScheduler.setAwaitTerminationSeconds(1); taskScheduler.afterPropertiesSet(); pollingChannelAdapter.setTaskScheduler(taskScheduler); MessagePublishingErrorHandler errorHandler = new MessagePublishingErrorHandler(); Log errorHandlerLogger = TestUtils.getPropertyValue(errorHandler, "logger", Log.class); errorHandlerLogger = spy(errorHandlerLogger); DirectFieldAccessor dfa = new DirectFieldAccessor(errorHandler); dfa.setPropertyValue("logger", errorHandlerLogger); pollingChannelAdapter.setErrorHandler(errorHandler); pollingChannelAdapter.setSource(ms); pollingChannelAdapter.setOutputChannel(new NullChannel()); pollingChannelAdapter.setBeanFactory(mock(BeanFactory.class)); pollingChannelAdapter.afterPropertiesSet(); Log adapterLogger = TestUtils.getPropertyValue(pollingChannelAdapter, "logger", Log.class); adapterLogger = spy(adapterLogger); when(adapterLogger.isDebugEnabled()).thenReturn(true); dfa = new DirectFieldAccessor(pollingChannelAdapter); dfa.setPropertyValue("logger", adapterLogger); pollingChannelAdapter.start(); assertTrue(startLatch.await(10, TimeUnit.SECONDS)); pollingChannelAdapter.stop(); taskScheduler.shutdown(); verifyZeroInteractions(errorHandlerLogger); verify(adapterLogger).debug(contains("Poll interrupted - during stop()?")); }