@Scheduled și @EnableScheduling în Spring Boot în Spring Boot

async Spring Boot 3.x / Java 17+ Q&A / Distribuie cod

Programarea sarcinilor periodice de fundal (Cron Jobs, rate fixe și întârzieri fixe) în Spring Boot fără biblioteci externe.

Sintaxă
@Scheduled(cron = "0 0 2 * * ?") / @Scheduled(fixedRate = 60000)

Spring Boot furnizează un motor robust de programare automată a sarcinilor (task scheduling) inclus nativ în pachetul de bază. Prin activarea @EnableScheduling pe o clasă de configurare, metodele marcate cu @Scheduled vor fi apelate la intervale regulate de către un scheduler intern.

Strategii principale de programare:

  • fixedRate = 5000: Execuție la fiecare 5 secunde, măsurată de la începutul fiecărui apel.
  • fixedDelay = 5000: Execuție la 5 secunde după finalizarea execuției precedente.
  • cron = "0 0 3 * * *": Expresii cron standardizate (de exemplu rulare în fiecare noapte la ora 03:00).
Exemplu: Task de curățare tabele temporare programat prin Cron
package ro.dexblog.demo.tasks;

import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Component;

@Configuration
@EnableScheduling
class SchedulingConfig {}

@Component
public class DatabaseCleanupTask {

    // Rulare în fiecare duminică la miezul nopții:
    @Scheduled(cron = "0 0 0 * * SUN")
    public void purgeExpiredSessions() {
        System.out.println("[CRON TASK] Curățare sesiuni expirate executată la: " + java.time.LocalDateTime.now());
    }
}

Comunitate & Schimb de cunoștințe

Întrebări & Exemple de Cod: @Scheduled și @EnableScheduling în Spring Boot

Ai o nelămurire despre utilizarea comenzii @Scheduled și @EnableScheduling în Spring Boot sau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!

💬

Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!

Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.

Comunitate Adaugă o întrebare sau distribuie un cod

Moderare & Siguranță:

Pentru a menține calitatea și securitatea informațiilor, fiecare întrebare sau fragment de cod/prompt este analizat (manual sau prin moderare asistată de AI) înainte de publicare.