配備後に外部システムとの同期プロセスを開始する必要があるJava EEアプリケーションがあります。
この要件を実装するにはどうすればよいですか?
@Startup
と@PostConstruct
アノテーションを使用する提案されたソリューションをテストしました。Glassfishは、注釈が付けられたすべてのメソッド@PostConstruct
が完了するまで、アプリケーションのデプロイメントを完了しないことがわかりました。したがって、私の場合、展開には数分から最大1時間かかります。
しかし、私は自分が望むものを達成する別の方法を見つけました。最良の解決策は、実行後にタイマーをキャンセルするタイマーコールバックメソッドのようです。
@Stateless
public class SynchronisationService {
@Schedule(hour = "*", minute = "*", persistent = false)
protected void init(Timer timer)
{
doTheSync();
timer.cancel();
}
}
非永続タイマーを使用すると、アプリケーションサーバーが再起動した場合にタイマーを再作成できます。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加