/
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: