[英]Run coroutine inside @Scheduled
我想運行一個定期任務。 在 Spring MVC 中,它可以完美運行。 現在我想集成 Spring Webflux + Kotlin 協程。 如何在@Scheduled
方法中調用掛起的函數? 我希望它等到暫停的 function 完成。
/// This function starts every 00:10 UTC
@Scheduled(cron = "0 10 0 * * *", zone = "UTC")
fun myScheduler() {
// ???
}
suspend fun mySuspendedFunction() {
// business logic
}
fun myScheduler() {
runBlocking {
mySuspendedFunction()
}
}
這樣協程將在被阻塞的線程中運行。 如果您需要在不同的線程中運行代碼或並行執行多個協程,您可以將調度程序(例如Dispatchers.Default
、 Dispatchers.IO
)傳遞給runBlocking()
或使用withContenxt()
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.