-
Notifications
You must be signed in to change notification settings - Fork 41.6k
Closed
Labels
status: invalidAn issue that we don't feel is validAn issue that we don't feel is valid
Description
The following configuration shuts down instantly when the application is stopped.
If I'm not missing any configuration, this might be a bug?
@Configuration
public class ScheduledGracefulShutdownConfig {
//this shouldn't be necessary at all with ' spring.task.scheduling.shutdown.await-termination'. but neither works
@Bean
TaskSchedulerCustomizer taskSchedulerCustomizer() {
return taskScheduler -> {
taskScheduler.setWaitForTasksToCompleteOnShutdown(true);
taskScheduler.setAwaitTerminationSeconds(60);
};
}
}
@SpringBootApplication
@EnableScheduling
@EnableAsync
public class AppConfiguration {
public static void main(String[] args) {
SpringApplication.run(AppConfiguration.class, args);
}
}
@Service
public class ScheduledService {
private final Logger LOGGER = LoggerFactory.getLogger(this.getClass());
@Scheduled(fixedRate = 100000000L)
public void scheduled() throws InterruptedException {
LOGGER.info("Starting scheduled job...");
TimeUnit.MINUTES.sleep(5);
LOGGER.info("Scheduled job finished.");
}
}
application.properties
:
server.shutdown=graceful
server.shutdown.grace-period=30s
spring.task.execution.shutdown.await-termination=true
spring.task.execution.shutdown.await-termination-period=30s
spring.task.scheduling.shutdown.await-termination=true
spring.task.scheduling.shutdown.await-termination-period=30s
spring-boot-2.6.6
with spring-boot-starter-web
dependency.
2022-04-06 12:36:46.237 INFO 256621 --- [ scheduling-1] ScheduledService : Starting scheduled job...
2022-04-06 12:36:49.496 INFO 256621 --- [ionShutdownHook] o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete
2022-04-06 12:36:49.499 INFO 256621 --- [tomcat-shutdown] o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete
2022-04-06 12:36:49.506 ERROR 256621 --- [ scheduling-1] o.s.s.s.TaskUtils$LoggingErrorHandler : Unexpected error occurred in scheduled task
java.lang.InterruptedException: sleep interrupted
at java.base/java.lang.Thread.sleep(Native Method) ~[na:na]
at java.base/java.lang.Thread.sleep(Thread.java:334) ~[na:na]
at java.base/java.util.concurrent.TimeUnit.sleep(TimeUnit.java:446) ~[na:na]
at ScheduledService.scheduled(ScheduledService.java:17) ~[classes/:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.springframework.scheduling.support.ScheduledMethodRunnable.run(ScheduledMethodRunnable.java:84) ~[spring-context-5.3.17.jar:5.3.17]
at org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54) ~[spring-context-5.3.17.jar:5.3.17]
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:515) ~[na:na]
at java.base/java.util.concurrent.FutureTask.runAndReset$$$capture(FutureTask.java:305) ~[na:na]
at java.base/java.util.concurrent.FutureTask.runAndReset(FutureTask.java) ~[na:na]
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:305) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128) ~[na:na]
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
Process finished with exit code 130 (interrupted by signal 2: SIGINT)
Metadata
Metadata
Assignees
Labels
status: invalidAn issue that we don't feel is validAn issue that we don't feel is valid