Skip to content

Commit

Permalink
KTOR-5359 Add engine shutdown configuration (#3324)
Browse files Browse the repository at this point in the history
KTOR-5359 Add engine shutdown configuration
  • Loading branch information
marychatte committed Jan 10, 2023
1 parent c64b070 commit d4be8ce
Show file tree
Hide file tree
Showing 4 changed files with 29 additions and 7 deletions.
Expand Up @@ -19,8 +19,14 @@ public object EngineMain {
public fun main(args: Array<String>) {
val applicationEnvironment = commandLineEnvironment(args)
val engine = CIOApplicationEngine(applicationEnvironment) { loadConfiguration(applicationEnvironment.config) }
val gracePeriod =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownGracePeriod")?.getString()?.toLong()
?: 50
val timeout =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownTimeout")?.getString()?.toLong()
?: 5000
engine.addShutdownHook {
engine.stop(50, 5000)
engine.stop(gracePeriod, timeout)
}
engine.start(true)
}
Expand Down
Expand Up @@ -6,7 +6,6 @@ package io.ktor.server.jetty

import io.ktor.server.config.*
import io.ktor.server.engine.*
import java.util.concurrent.*

/**
* Jetty engine
Expand All @@ -20,8 +19,14 @@ public object EngineMain {
public fun main(args: Array<String>) {
val applicationEnvironment = commandLineEnvironment(args)
val engine = JettyApplicationEngine(applicationEnvironment) { loadConfiguration(applicationEnvironment.config) }
val gracePeriod =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownGracePeriod")?.getString()?.toLong()
?: 3000
val timeout =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownTimeout")?.getString()?.toLong()
?: 5000
engine.addShutdownHook {
engine.stop(3, 5, TimeUnit.SECONDS)
engine.stop(gracePeriod, timeout)
}
engine.start(true)
}
Expand Down
Expand Up @@ -6,7 +6,6 @@ package io.ktor.server.netty

import io.ktor.server.config.*
import io.ktor.server.engine.*
import java.util.concurrent.*

/**
* Netty engine
Expand All @@ -20,8 +19,15 @@ public object EngineMain {
public fun main(args: Array<String>) {
val applicationEnvironment = commandLineEnvironment(args)
val engine = NettyApplicationEngine(applicationEnvironment) { loadConfiguration(applicationEnvironment.config) }

val gracePeriod =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownGracePeriod")?.getString()?.toLong()
?: 3000
val timeout =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownTimeout")?.getString()?.toLong()
?: 5000
engine.addShutdownHook {
engine.stop(3, 5, TimeUnit.SECONDS)
engine.stop(gracePeriod, timeout)
}
engine.start(true)
}
Expand Down
Expand Up @@ -6,7 +6,6 @@ package io.ktor.server.tomcat

import io.ktor.server.config.*
import io.ktor.server.engine.*
import java.util.concurrent.*

/**
* Tomcat engine
Expand All @@ -22,8 +21,14 @@ public object EngineMain {
val engine = TomcatApplicationEngine(applicationEnvironment) {
loadConfiguration(applicationEnvironment.config)
}
val gracePeriod =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownGracePeriod")?.getString()?.toLong()
?: 3000
val timeout =
engine.environment.config.propertyOrNull("ktor.deployment.shutdownTimeout")?.getString()?.toLong()
?: 5000
engine.addShutdownHook {
engine.stop(3, 5, TimeUnit.SECONDS)
engine.stop(gracePeriod, timeout)
}
engine.start(true)
}
Expand Down

0 comments on commit d4be8ce

Please sign in to comment.