玩框架SIGTERM生命周期

时间:2016-03-08 07:39:17

标签: playframework playframework-2.0

我正在尝试让我的应用程序完全关闭,因为我需要

  1. 停止接收新连接
  2. 关闭线程池(正常等待它们完成)
  3. 关闭申请
  4. 我知道你可以发送一个SIGTERM来玩,但我不确定当他得到那个信号时玩的是什么。

1 个答案:

答案 0 :(得分:0)

您应该将ApplicationLifecycle注入您的class \ module,并添加一个stop hook。

import scala.concurrent.Future
import javax.inject._
import play.api.inject.ApplicationLifecycle

@Singleton 
class MessageQueueConnection @Inject() (lifecycle: ApplicationLifecycle) {
   val connection = connectToMessageQueue()
   lifecycle.addStopHook { () =>
      Future.successful(connection.stop())
   }

   //...
}

您可以阅读更多here