私はある時間間隔でタスクを実行するシングルトンクラスを持っています。アプリケーションがすべて正常に起動すると、タスクは適切な期間に実行され、その間隔はタスクが重複していないほど充分です。EJBの@Scheduleのキャッシュを消去します
クラスが怒鳴る示している:
@Singleton
@Startup
public class BOTAnalisaSituacao {
public BOTAnalisaSituacao() throws FileNotFoundException {
}
@Schedule(second = "0", minute = "*/1", hour = "*")
public void analisar() throws Exception {
System.out.println("Starting");
System.out.println("DONE");
}
}
使用されるWebコンテナがWildfly 10
ある問題は、たとえば、タスクが実行され、アプリケーションがダウンし、1時間後に開始された場合には、この場合、60回の通話がすべて行われ、その後1分の期間がそれ自身で復元されます。 吸う行為を避けるためにキャッシュをクリアする必要がありますか?
あなたは、「アプリケーションがダウンして1時間後に再開されたとき」とはどういう意味ですか? –
アプリケーションは常に実行されている必要がありますが、障害が発生した場合はすべてのスケジュールタスクを失う必要があります。実際には、「アプリケーションが1時間後に開始されたとき」を意味します。 @Scheduleにパラメータ "persistence = false"を追加して作業しました。 –