私はこのスケジューラを使用しています。それが5になったら、それを一時停止し、その後番号tries
をリセットしたいと思います。私はtotalTries
が5に達した点に達してから、30秒間停止します。しかし、30秒を過ぎるとすぐに次の5つのログが記録されます。totalTries
と再び一時停止します。明らかに、何かがカーテンの後ろで起こっている。Java - Akkaスケジューラを一時停止
これはどのように誤解されていますか?私がやりたいことは、その期間、ActorSystem system
を完全に一時停止することです。どんなヒントも大変感謝しています。
system.scheduler().schedule(
Duration.create(5, TimeUnit.SECONDS),
Duration.create(1, TimeUnit.SECONDS),
new Runnable() {
public void run() {
int totalTries = incrementTries(1);
logger.info("tries: " + totalTries);
if(totalTries >= 5) {
logger.info("5 tries reached, waiting 30 seconds.");
try {
Thread.sleep(30000);
} catch (InterruptedException e) {
logger.info("Sleep interrupted" + e);
}
resetTries();
}
}
}
}, system.dispatcher());