簡體   English   中英

在@Scheduled 中運行協程

[英]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.DefaultDispatchers.IO )傳遞給runBlocking()或使用withContenxt()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM