2016-08-20 7 views
0

サーバでもメソッドを開始するにはどうすればが完全にで実行されていますか? 現在、私はファイルウォッチャーを実装しています。 サーバから開始してファイルウォッチャを起動したいとします。 しかし、私の方法ではwhile()ループが原因で、サーバーはタイムアウトに入って起動しません。したがって、サーバーと私のWebアプリケーションが成功裏に展開されるとすぐに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)ごとに1分ごとに実行されるようになりました。これはうまくいくでしょうか?

+0

いいえ、私はこのアドホックが必要です。すぐに新しいファイルがフォルダ内にあるので、私はアプリで通知する必要があります –

+0

しかし、あなたはディレクトリをポーリングする無限ループを持っていますか、またはいくつかのイベントがありますか?たとえば、5秒ごとに実行することができます。あなたは秒= "*/5"を追加します。 – stdunbar

関連する問題