如何在Ktor微服务应用中安排任务

问题描述 投票:2回答:1

我正在尝试在Ktor应用程序中安排任务,但是我无法在线找到有关如何执行此操作的任何信息。有人之前有任何建议或能力吗?

kotlin scheduling ktor
1个回答
0
投票

Ktor没有内置的调度程序,因此您必须实现自己的调度程序

我为自己完成了使用Java执行器编写的小型课程,您可能会发现它很有用

class Scheduler(private val task: Runnable) {
    private val executor = Executors.newScheduledThreadPool(1)!!

    fun scheduleExecution(every: Every) {

        val taskWrapper = Runnable {
            task.run()
        }

        executor.scheduleWithFixedDelay(taskWrapper, every.n, every.n, every.unit)
    }


    fun stop() {
        executor.shutdown()

        try {
            executor.awaitTermination(1, TimeUnit.HOURS)
        } catch (e: InterruptedException) {
        }

    }
}

data class Every(val n: Long, val unit: TimeUnit)
© www.soinside.com 2019 - 2024. All rights reserved.