Дополнительный поток Thread реализованный в Spring Boot Rest-сервисе не работает в Tomcat 8.5.11

163
20 марта 2019, 12:50

Я пишу rest-сервис и использую Spring Boot. Сервис в основном потоке получает запросы по REST, а в дополнительном проводит очистку файлов в нужное время на компьютере. В этом сервисе реализовал дополнительный поток Tread, который чистит директорию на компьютере. Реализовано это так:

код запуска потока и самого потока DirCleaner.java

Runnable task = () -> {
        try {
            while (true) {
                тут код работы очистки и условия проверки
                        Thread.sleep(60000);
                    }
                }
                Thread.sleep(1000);
            }
        } catch (InterruptedException threadEx) {EventLogWriter.logEvent(EventStatus.ERROR, threadEx.getMessage()); }
        catch (Exception ex) {
            EventLogWriter.logEvent(EventStatus.ERROR, ex.getMessage());
        }
    };
    Thread delThread = new Thread(task, "Поток удалающий файлы");
    delThread.

Проблема в том, что на сервере Tomcat 8.5.11 этот поток не запускается, запускается только основной поток в котором работает @Controller, хотя локально при отладки или запуске в Intellij IDEA все работает нормально, и приложение работает в 2 потока.

Код Main.class

@SpringBootApplication
@EnableWebMvc
@EnableAutoConfiguration
@ComponentScan(value = "com.del.api")
public class SpringApplicationsDel extends SpringBootServletInitializer 
implements WebApplicationInitializer {

public static void main(String []args){
    ApplicationContext startContext = SpringApplication.run(SpringApplicationsDel.class,args);
    DirCleaner dirCleaner = (DirCleaner) startContext.getBean("DirCleaner");
    EventLogWriter.logEvent(EventStatus.WARN, "Приложение запущено");
    dirCleaner.startRun();
}

protected SpringApplicationBuilder configure(SpringApplicationBuilder builder){
    EventLogWriter.logEvent(EventStatus.WARN, "Приложение запускается");
    return builder.sources(SpringApplicationsDel.class);
}
}

В чем может быть проблема?

READ ALSO
Программа возвращает код символа а не сам символ

Программа возвращает код символа а не сам символ

Всем привет! Метод sumDigitsInNumber должен возвращать сумму цифр полученного числа (546), но вместо этого возвращает сумму кодов чисел из таблицы...

198
Asset, WebView и редактирование файлов

Asset, WebView и редактирование файлов

Есть WebViewВ него загружается index

142
Использование, связка бинов в Java

Использование, связка бинов в Java

У меня есть examplexhtml, я не знаю как правильно его заполнить, так как NetBeans предлагает один вариант, а видео, где все работает, заполняют по-другому

153
JS. Внутренняя память

JS. Внутренняя память

Сколько байтов в куче занимает объявление функции в JS?

148