Не удалось дождаться завершения весеннего графика загрузки - PullRequest
0 голосов
/ 08 июля 2019

У меня есть задание по расписанию с последующей настройкой:

@Configuration
@EnableScheduling
public class SchedulerConfig {
@Value("${scheduled.task.pool.size}")
private int schedulerPoolSize;

@Value("${scheduled.task.thread.name.prefix}")
private String threadNamePrefix;

@Bean
ThreadPoolTaskScheduler taskScheduler(){
    ThreadPoolTaskScheduler threadPoolTaskScheduler = new ThreadPoolTaskScheduler() {
        @Override
        public void destroy() {
            this.getScheduledThreadPoolExecutor().setExecuteExistingDelayedTasksAfterShutdownPolicy(false);
            super.destroy();
        }
    };

    threadPoolTaskScheduler.setPoolSize(schedulerPoolSize);
    threadPoolTaskScheduler.setThreadNamePrefix(threadNamePrefix);               
    threadPoolTaskScheduler.setWaitForTasksToCompleteOnShutdown(true);
    threadPoolTaskScheduler.setAwaitTerminationSeconds(20);
    return threadPoolTaskScheduler;
}

Вот мое задание

@Scheduled(fixedDelayString = "${scheduled.task.job1.fixed.delay}") 
public void scheduleTaskJob1() {
    logger.info("Fixed delay task called every 3 seconds after latest finished Execution Time - {}",
            dateTimeFormatter.format(LocalDateTime.now()));
    String HttpErrorCode = "xxx";
    try {
            //10s taken to complete
        HttpErrorCode = mappingErrorService.getHttpErrorCode();

    } catch (Exception ex) {
        logger.error("Ran into an error {}", ex);
    }

    logger.info("Current Thread : {} " + HttpErrorCode, Thread.currentThread().getName());
}

Я много раз тестировал, но когда останавливал свое приложение, оно всегда показывалоошибка ... и моя задача не была успешно выполнена.Кажется, что setWaitForTasksToCompleteOnShutdown и setAwaitTerminationSeconds не работают.

Я также пробую с

spring.quartz.wait-for-jobs-to-complete-on-shutdown=true 

, но не повезло.Моя задача всегда попадала в исключение и не дала результата

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...