You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Ktor中计算服务器运行时间?

在Ktor中计算服务器运行时间的方案

Ktor本身没有像Node.js process.uptime() 那样的内置方法,但可以借助JVM的时间API手动实现,步骤简单直接:

  • 记录应用启动时间:在应用初始化阶段保存当前时间戳,后续通过计算当前时间与启动时间的差值得到运行时长。

实现示例

1. 在Application模块中记录启动时间

import io.ktor.server.application.*
import io.ktor.server.response.*
import io.ktor.server.routing.*
import java.time.Instant

// 全局保存应用启动的时间点
private val appStartTime = Instant.now()

fun Application.module() {
    routing {
        // 示例路由:返回服务器运行秒数
        get("/uptime") {
            val uptimeSeconds = Instant.now().epochSecond - appStartTime.epochSecond
            call.respondText("服务器已运行 $uptimeSeconds 秒")
        }
    }
}

2. 更精确的时间计算(毫秒级)

如果需要毫秒级精度,改用System.currentTimeMillis():

private val appStartTimeMillis = System.currentTimeMillis()

// 在需要的地方计算运行时长
val uptimeMillis = System.currentTimeMillis() - appStartTimeMillis

3. 在启动入口记录时间

如果是通过embeddedServer直接启动,也可以在启动前记录时间:

import io.ktor.server.netty.*
import io.ktor.server.application.*

fun main() {
    val startTime = System.currentTimeMillis()
    embeddedServer(Netty, port = 8080) {
        // 可将startTime传入模块或全局引用
        module()
    }.start(wait = true)
}

补充说明

Ktor运行在JVM上,所有JVM提供的时间工具类(如Instant、System、LocalDateTime等)都可以用来实现该功能,可根据自身精度需求自由选择。

内容的提问来源于stack exchange,提问作者saikamesh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.12 06:50:46