Planlegg oppgaver med @Scheduled
Kjør bakgrunnsjobber med faste intervaller eller cron-planer ved hjelp av Springs innebygde støtte for oppgaveplanlegging.
Planlegg oppgaver med @Scheduled er en gratis leksjon i Komplett guide til Spring Boot 4 på CoddyKit. Dette er leksjon 4 av 4. Du kan lese valgfritt 3 leksjoner fra denne læringsstien gratis i sin helhet – deretter låser CoddyKit PRO opp alle leksjoner, samt praktisk øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Komplett guide til Spring Boot 4, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Komplett guide til Spring Boot 4 inneholder totalt 4 leksjoner.
Hvorfor planlagte oppgaver?
Mange applikasjoner trenger at arbeid utføres med jevne mellomrom: rydde opp i data, sende sammendrag eller oppdatere cacher. Spring tilbyr planlegging uten et eksternt rammeverk for jobber.
Aktivere planlegging
Legg til @EnableScheduling i en konfigurasjonsklasse for å aktivere Spring sin scheduler.
@EnableScheduling
@Configuration
public class SchedulingConfig {
}Kjøring med fast intervall
Alternativet fixedRate kjører en metode hvert N. millisekund, målt fra starten av hver kjøring.
@Scheduled(fixedRate = 5000)
public void poll() {
System.out.println("Polling");
}Kjøring med fast forsinkelse
fixedDelay venter N millisekunder etter at forrige kjøring er ferdig. Dermed unngås overlapp når en oppgave tar litt tid.
@Scheduled(fixedDelay = 5000)
public void process() {
}Intervall kontra forsinkelse
Bruk fixedRate for en jevn takt, og fixedDelay når hver kjøring må fullføres før den neste starter. Feil valg kan føre til overlappende kjøringer.
Cron-uttrykk
Bruk cron for tidsstyring basert på kalenderen. Uttrykket har seks felt: sekund, minutt, time, dag, måned og ukedag.
@Scheduled(cron = "0 0 2 * * *")
public void nightlyJob() {
}Lese cron-uttrykket over
0 0 2 * * * betyr sekund 0, minutt 0, time 2, hver dag, hver måned og hvilken som helst ukedag – altså kl. 02 hver dag.
Innledende forsinkelse
Attributtet initialDelay utsetter den første kjøringen. Det er nyttig for å la appen varme opp før bakgrunnsarbeidet starter.
@Scheduled(fixedRate = 5000, initialDelay = 10000)
public void start() {
}Unngå å blokkere scheduleren
Som standard kjører én enkelt tråd alle planlagte oppgaver. En langvarig oppgave kan forsinke andre, så konfigurer et trådpool eller kombiner planlegging med @Async for tungt arbeid.
Planlegging i klynger
Hvis du kjører flere instanser, vil hver instans kjøre den samme planen. Bruk en distribuert lås, for eksempel ShedLock, for å sikre at en jobb kjører én gang på tvers av klyngen.
Eksternalisere planen
Legg cron-uttrykket i egenskaper, slik at du kan endre tidspunktet per miljø uten å kompilere på nytt.
@Scheduled(cron = "${cleanup.cron}")
public void cleanup() {
}Hurtigsjekk
Test forståelsen din av planlagte oppgaver.
Oppsummering
Du aktiverte planlegging og brukte fixedRate, fixedDelay, cron-uttrykk og innledende forsinkelser. Du lærte også å eksternalisere planer og koordinere jobber trygt på tvers av en klynge.
Lær deg Java med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 21
- Leksjoner
- 84
Ofte stilte spørsmål
Er leksjonen «Planlegg oppgaver med @Scheduled» gratis?
Ja – du kan lese valgfritt 3 av leksjonene i læringsstien Komplett guide til Spring Boot 4, inkludert «Planlegg oppgaver med @Scheduled», gratis i sin helhet her på nettet. Deretter låser CoddyKit PRO opp alle leksjoner, samt interaktiv øving med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Kurset i Komplett guide til Spring Boot 4 inneholder totalt 4 leksjoner.
Hva lærer jeg i «Planlegg oppgaver med @Scheduled»?
Kjør bakgrunnsjobber med faste intervaller eller cron-planer ved hjelp av Springs innebygde støtte for oppgaveplanlegging. Du øver på Komplett guide til Spring Boot 4 med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Komplett guide til Spring Boot 4?
Ingen tidligere erfaring er nødvendig. Komplett guide til Spring Boot 4 på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 4 av 4.
Hvor lang tid tar leksjonen «Planlegg oppgaver med @Scheduled»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Komplett guide til Spring Boot 4-leksjonen?
Ja. Alle Komplett guide til Spring Boot 4-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Asynkrone metoder med @Async
- Introduksjon til meldingskøer
- Integrasjon av RabbitMQ/Kafka
- Planlegg oppgaver med @Scheduled