AkkaでGraceful Shutdownのやり方
自分用にメモを残しておきます。
参考
シャットダウン時に処理を行う
CoordinatedShutdown.get(system) .addTask( CoordinatedShutdown.PhaseBeforeServiceUnbind(), "someTaskName", () -> { return akka.pattern.Patterns.ask(someActor, "stop", Duration.ofSeconds(5)) .thenApply(reply -> Done.getInstance()); });
Akkaがシャットダウンする前に処理を行う
JVMのシャットダウンを検知し、Akkaがシャットダウンする前になにか処理を行う。
CoordinatedShutdown.get(system) .addJvmShutdownHook(() -> System.out.println("custom JVM shutdown hook..."));
docker上でAkkaを実行していたとしても、上記hookは当然動作します。