2016-08-20 5 views
0

Как запустить метод, даже сервер полностью завершен и работает? В настоящее время я реализую наблюдателя файлов. Я хочу запустить Наблюдатель файлов при запуске с сервера. Но из-за цикла while() в моем методе сервер не запускается и не переходит в таймаут. Поэтому я хочу запустить FileWatcher, как только сервер и мое веб-приложение развернутся успешно.@Startup - метод запуска Wildfly Server, если приложение успешно развернуто

@Startup 
@Singleton 
public class FileWatcher { 
    @PostConstruct 
    public void init() { 
     System.out.println("Init file Watcher "); 
     try { 
      doStartFileWatcher(); 
     } catch (Exception e) { 
     } 
    } 
} 

Как это решить?

+0

возможно удаление @Startup делает то, что вы хотите. – xxlali

ответ

0

Угадайте, что вы периодически запускаете что-то периодически для класса FileWatcher. Как насчет изменения:

@Startup 
@Singleton 
public class FileWatcher { 

    @Schedule(hour = "*", minute = "*",persistent = false) 
    private void runFileWatcher() { 
    } 
} 

Метод runFileWatcher теперь будет работать каждую минуту на 0 второй (т.е. 10:08:00 AM). Будет ли это работать лучше?

+0

Нет, мне нужен этот adhoc. Как только новый файл находится в папке, мне нужно сообщить в приложение –

+0

Но есть ли у вас бесконечный цикл опроса каталога или есть какое-то событие? Вы могли бы запустить его, например, каждые 5 секунд. Для этого вы добавили бы секунды = "*/5". – stdunbar