Creare uno scheduler in Ktor con cron4j

Mattepuffo's logo
Creare uno scheduler in Ktor con cron4j

Creare uno scheduler in Ktor con cron4j

cron4j è una libreria per Java che ci permette di creare degli scheduler in stile CRON.

In questo articolo la usiamo in Kotlin per creare uno scheduler all'avvio del server di Ktor.

Se usate Maven:

<dependency>
  <groupId>it.sauronsoftware.cron4j</groupId>
  <artifactId>cron4j</artifactId>
  <version>2.2.5</version>
</dependency>

Qui sotto il codice:

import io.ktor.server.application.*
import io.ktor.server.engine.*
import io.ktor.server.netty.*
import io.ktor.server.plugins.cors.routing.*
import it.sauronsoftware.cron4j.Scheduler

fun main() {
  embeddedServer(Netty, port = 8080, host = "0.0.0.0", module = Application::module)
    .start(wait = true)
}

fun Application.module() {
  // YOUR STUFF

  if (GetConfig.getConfig().automaticReset) {
    val cronStr = "45 23 * * *"
    val scheduler = Scheduler()
    scheduler.schedule(cronStr) {
      // DO STUFF
    }
    scheduler.start()
  }
}

Molto easy.

Enjoy!


Condividi

Commentami!