Schedulare task in Spring Boot e Kotlin
Spring Boot ha già tutto per creare task schedulati.
E possiamo usare sia una sintassi simile a CRON che non.
In questo articolo vediamo come fare in un progetto Kotlin.
Questo il mio application.properties:
spring.application.name=test_spring_kotlin
logging.level.root=INFO
logging.level.com.example.scheduledjobs=INFO
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss} - %msg%n
Poi questa la classe dove eseguo due task:
- uno ogni minuto
- uno giornaliero ad un orario prestabilito
package com.spring.kotlin
import org.springframework.scheduling.annotation.Scheduled
import org.springframework.stereotype.Component
import java.time.LocalDateTime
import java.time.format.DateTimeFormatter
@Component
class MyTasks {
private val formatter = DateTimeFormatter.ofPattern("dd/MM/yyyy HH:mm:ss")
@Scheduled(cron = "0 * * * * *")
fun jobOgniMinuto() {
val orarioCorrente = LocalDateTime.now().format(formatter)
println("[Job ogni minuto] Eseguito alle: $orarioCorrente")
}
@Scheduled(cron = "0 28 08 * * *")
fun jobGiornaliero() {
val orarioCorrente = LocalDateTime.now().format(formatter)
println("[Job giornaliero] Eseguito alle: $orarioCorrente")
}
}
Infine abilitiamo le schedulazioni:
package com.spring.kotlin
import org.springframework.boot.autoconfigure.SpringBootApplication
import org.springframework.boot.runApplication
import org.springframework.scheduling.annotation.EnableScheduling
@SpringBootApplication
@EnableScheduling
class TestSpringKotlinApplication
fun main(args: Array<String>) {
runApplication<TestSpringKotlinApplication>(*args)
}
Enjoy!
kotlin spring boot enablescheduling cron
Commentami!