Spring Boot 4-microservices en REST-API's · Les

Plannen met @Scheduled

Voer taken uit met een vast interval of cron-schema.

Les 1 van 413 stappen

Plannen met @Scheduled is een gratis Spring Boot 4-microservices en REST-API's-les op CoddyKit. Dit is les 1 van 4. Je kunt de volledige les hieronder gratis lezen en daarna in de browser praktisch oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is. Deze les maakt deel uit van het leertraject Spring Boot 4-microservices en REST-API's. Je voortgang wordt gesynchroniseerd op het web en in de CoddyKit-app. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.

Plannen in Spring Boot

Met Spring Boot kun je methoden automatisch volgens een planning uitvoeren zonder een externe cron-daemon. Je annoteert een methode met @Scheduled en Spring roept deze herhaaldelijk op de achtergrond aan.

  • Ideaal voor opruimtaken, peilingen en het genereren van rapporten
  • Geen extra infrastructuur nodig

Plannen inschakelen

Plannen staat standaard uit. Schakel het in met @EnableScheduling op een configuratieklasse, vaak de hoofdklasse van de app.

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
@EnableScheduling
public class App {
    public static void main(String[] args) {
        SpringApplication.run(App.class, args);
    }
}

fixedRate

fixedRate voert de methode uit met een vast interval, gemeten van het begin van de ene uitvoering tot het begin van de volgende. De waarde is in milliseconden.

@Component
public class RateTask {

    @Scheduled(fixedRate = 5000)
    public void report() {
        System.out.println("Runs every 5 seconds");
    }
}

fixedDelay

fixedDelay wacht een vaste periode nadat de vorige uitvoering is voltooid voordat de volgende begint. Gebruik dit wanneer uitvoeringen nooit mogen overlappen.

@Scheduled(fixedDelay = 5000)
public void process() {
    // next run starts 5s AFTER this one ends
    doWork();
}

fixedRate versus fixedDelay

Het belangrijkste verschil is het referentiepunt:

  • fixedRate = interval tussen begintijden (uitvoeringen kunnen overlappen als een uitvoering langzaam is)
  • fixedDelay = periode tussen het einde en het volgende begin (overlap is onmogelijk)

initialDelay

initialDelay stelt de eerste uitvoering na het opstarten uit. Combineer dit met fixedRate of fixedDelay om te voorkomen dat de taak meteen bij het opstarten wordt uitgevoerd.

@Scheduled(initialDelay = 10000, fixedRate = 5000)
public void warmThenRun() {
    // waits 10s after startup, then every 5s
}

cron-expressies

Gebruik voor planning op basis van de kalender cron. Spring cron heeft 6 velden: seconde, minuut, uur, dag van de maand, maand en dag van de week.

@Scheduled(cron = "0 0 9 * * MON-FRI")
public void weekdayMorning() {
    // 09:00:00 every weekday
}

Cron-velden lezen

Een sterretje * betekent "elke waarde". Je kunt ? gebruiken in dag van de maand of dag van de week wanneer een van beide niet is opgegeven. Bereiken (MON-FRI), lijsten (1,15) en stappen (*/10) worden ondersteund.

@Scheduled(cron = "*/30 * * * * *") // every 30 seconds
public void everyHalfMinute() { }

@Scheduled(cron = "0 0 0 1 * *") // midnight on the 1st of every month
public void monthly() { }

Tijdzones

Standaard gebruikt cron de tijdzone van de server. Stel zone in om planningen expliciet en voorspelbaar te maken in verschillende omgevingen.

@Scheduled(cron = "0 0 8 * * *", zone = "Europe/Istanbul")
public void eightAmIstanbul() { }

De planning extern configureren

Hardgecodeerde intervallen zijn inflexibel. Gebruik een eigenschapsplaceholder, zodat de planning per omgeving kan veranderen zonder opnieuw te compileren.

@Scheduled(fixedRateString = "${app.report.rate:5000}")
public void report() { }

// application.yml
// app:
//   report:
//     rate: 10000

Valkuilen bij plannen

Standaard voert één thread alle geplande taken uit, waardoor een trage taak andere taken kan vertragen. Configureer voor parallelle uitvoering een ThreadPoolTaskScheduler. Zorg er ook voor dat geplande methoden idempotent zijn voor het geval de app opnieuw wordt gestart.

Korte kennistest

Test je begrip van plannen.

Samenvatting

Je hebt geleerd hoe je werk plant in Spring Boot:

  • @EnableScheduling schakelt de functie in
  • fixedRate = van begin tot begin, fixedDelay = van einde tot begin
  • cron verwerkt kalenderschema's; stel zone in voor duidelijkheid
  • Maak intervallen extern configureerbaar met eigenschapsplaceholders
Gratis beginnen

Leer Java met een AI-tutor — gratis

Schrijf echte code en voer die uit in je browser, krijg direct hulp van een AI-tutor die 24/7 beschikbaar is en ga verder waar je gebleven bent op het web of in de app.

Cursussen
24
Lessen
93

Veelgestelde vragen

Is de les “Plannen met @Scheduled” gratis?

Ja — de volledige tekst van “Plannen met @Scheduled” kun je hier gratis op het web lezen. Als je interactief wilt oefenen met een ingebouwde code-editor en een AI-begeleider die 24/7 beschikbaar is, en de rest van de cursus Spring Boot 4-microservices en REST-API's wilt ontgrendelen, kun je upgraden naar CoddyKit PRO. De cursus Spring Boot 4-microservices en REST-API's bevat in totaal 4 lessen.

Wat leer ik in “Plannen met @Scheduled”?

Voer taken uit met een vast interval of cron-schema. Je oefent met Spring Boot 4-microservices en REST-API's door code rechtstreeks in de browser uit te voeren. Een AI-begeleider die 24/7 beschikbaar is beantwoordt je vragen terwijl je de les doorwerkt.

Heb ik ervaring nodig om met Spring Boot 4-microservices en REST-API's te beginnen?

Ervaring vooraf is niet nodig. Spring Boot 4-microservices en REST-API's op CoddyKit is opgebouwd voor beginners tot gevorderden, zodat je hier of bij het begin kunt starten en in je eigen tempo kunt leren. Dit is les 1 van 4.

Hoe lang duurt de les “Plannen met @Scheduled”?

De meeste lessen van CoddyKit duren ongeveer 5–10 minuten. Elke les is kort en interactief, zodat je gestaag vooruitgaat en op het web en in de app precies verdergaat waar je was gebleven.

Kan ik code schrijven en uitvoeren in deze les over Spring Boot 4-microservices en REST-API's?

Ja. Elke les over Spring Boot 4-microservices en REST-API's bevat een ingebouwde code-editor, zodat je rechtstreeks in je browser echte code kunt schrijven en uitvoeren en direct feedback van AI krijgt — lokale installatie is niet nodig.

Alle lessen in deze cursus

  1. Plannen met @Scheduled
  2. Spring Batch-jobs en -stappen
  3. Readers, processors en writers
  4. Herstarten en foutafhandeling
← Terug naar Spring Boot 4-microservices en REST-API's