/
Schemaläggning av jobb

Schemaläggning av jobb

Qarkus har stöd för att trigga schemalagda jobb. I korthet går det ut på att konfigurera en javaböna för ett specifkt tidsintervall. Annoteringen @Scheduled möjliggör notation liknande cronjob (cron) eller att ange att start ska ske vid ett visst tidsintervall (every).

Javabönan injiceras i din resource-klass med annotationen @Inject.

Mer information hos Quarkus: Scheduling Periodic Tasks Exemplen nedan är hämtade därifrån.

1. Förbered

Lägg till quarkus-scheduler i pom.xml:

<dependency> <groupId>io.quarkus</groupId> <artifactId>quarkus-scheduler</artifactId> </dependency>

Det kan också åstadkommas genom att köra kommandot:

./mvnw quarkus:add-extension -Dextensions="scheduler"

2. Skapa böna

Javabönan för schemaläggning kan skapas upp enligt nedan. I exemplet med tre olika metoder (och konfigurationer) som triggas för olika syften.

package org.acme.scheduler; import java.util.concurrent.atomic.AtomicInteger; import javax.enterprise.context.ApplicationScoped; import io.quarkus.scheduler.Scheduled; import io.quarkus.scheduler.ScheduledExecution; @ApplicationScoped public class CounterBean { private AtomicInteger counter = new AtomicInteger(); public int get() { return counter.get(); } @Scheduled(every="10s") void increment() { counter.incrementAndGet(); } @Scheduled(cron="0 15 10 * * ?") void cronJob(ScheduledExecution execution) { counter.incrementAndGet(); System.out.println(execution.getScheduledFireTime()); } @Scheduled(cron = "{cron.expr}") void cronJobWithExpressionInConfig() { counter.incrementAndGet(); System.out.println("Cron expression configured in application.properties"); } }

3. Injicera böna

Bönan injiceras i din resource-klass:

 

Related pages