ただのブログです

技術的な物とかを主に。主にWeb系がメイン。いつか、職業エンジニアになりたい。

ScalaでJVMの終了時のフック処理を行う

ただのメモ

java.lang.Runtimeを使うとメソッド一個で終わるような処理でも

new Thread {
  override def run() {
  }
}

しなきゃいけなくて、わりとしんどい。あとで読んだ時に。

Playを真似て書いてたので https://github.com/playframework/playframework/blob/2.2.x/framework/src/play/src/main/scala/play/core/server/NettyServer.scala#L233 と使われてるし、それ以外の方法ないのかなぁと思ってたら

というのを教えてもらってのでこれ使いましょう。

https://github.com/scala/scala/blob/v2.10.3/src/library/scala/sys/package.scala#L63-L75

sys.addShutdownHook(dispose)