我目前正在使用 Netty 在 ktor 中尝试应用程序事件。然而,唯一被调用的钩子是“ApplicationStarted”。我在这里做错了什么?
我在所有函数中设置了断点,正在进行订阅,但并非所有事件侦听器都被调用。我也试图在 ktor 文档中找到一些解释,但没有成功。
import io.ktor.application.*
fun Application.events(){
environment.monitor.subscribe(ApplicationStarting, ::onStarting)
environment.monitor.subscribe(ApplicationStarted, ::onStarted)
environment.monitor.subscribe(ApplicationStopping, ::onStopping)
environment.monitor.subscribe(ApplicationStopped, ::onStopped)
environment.monitor.subscribe(ApplicationStopPreparing, ::onPrepareStop)
}
private fun onStarting(app: Application){
app.log.info("Application starting")
}
private fun onStarted(app: Application){
app.log.info("Application started")
}
private fun onStopping(app: Application){
app.log.info("Application stopping")
}
private fun onStopped(app: Application){
app.log.info("Application stopped")
}
private fun onPrepareStop(env: ApplicationEnvironment){
env.log.info("Preparing App Stop")
}
“应用程序已启动”出现在日志消息中,但没有其他输出。
我做得有多糟糕,或者这是一个错误?