使用 Timer() 每天在特定时间运行一个方法

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

使用 Kotlin、Bukkit (Spigot) 和 Timer() (或任何有帮助的东西),我正在尝试创建一种可以每天在特定时间运行另一种方法的方法。

这是我到目前为止所做的,但不起作用。

fun schedule() {
        val timer = Timer()
        val format = SimpleDateFormat("hh:mm:ss") 
        val date = format.parse("11:07:09")
        timer.schedule(sendMessage(), format, date)
}

fun sendMessage() {
    System.out.println("Test");
}

不起作用,因为

timer.schedule()
需要
TimerTask
Date
long

我感到困惑的是,如何转换格式和日期,然后将其添加到

timer.schedule()
,这样它每天都会运行?另外,我将如何尊重时区,并确保它至少在服务器时间附近运行?

java kotlin bukkit timertask
2个回答
2
投票
val timer = Timer()
val task: TimerTask = object : TimerTask() {
    override fun run() {
       // do your task here
    }
}
// repeat every hour
timer.schedule(task, 0L, 1000 * 60 * 60)

请参阅此处


0
投票

您可以使用 Timer 类并添加 TimerTask 来安排您的任务。您可以在这里找到潜在的解决方案。 KodeSrc 在 Kotlin Ktor 中安排任务

© www.soinside.com 2019 - 2024. All rights reserved.