@Async și @EnableAsync în Spring Boot în Spring Boot

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

Executarea asincronă a sarcinilor de lungă durată pe fire de execuție separate din fundal fără a bloca firul cererii HTTP.

Sintaxă
@EnableAsync / @Async public CompletableFuture<T> doWork()

Operațiunile consumatoare de timp (trimiterea de email-uri, generarea de PDF-uri sau apelurile către servicii terțe lente) nu ar trebui să țină blocată cererea utilizatorului. Prin activarea @EnableAsync, orice metodă adnotată cu @Async va fi delegată automat unui fir de execuție dintr-un pool dedicat (ThreadPoolTaskExecutor).

Metodele asincrone pot avea tipul returnat void (execută și uită – fire and forget) sau pot returna instanțe CompletableFuture<T> pentru compunerea ulterioară a rezultatelor.

Exemplu: Trimitere asincronă de notificări cu CompletableFuture
package ro.dexblog.demo.service;

import org.springframework.scheduling.annotation.Async;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.context.annotation.Configuration;
import org.springframework.stereotype.Service;
import java.util.concurrent.CompletableFuture;

@Configuration
@EnableAsync
class AsyncConfig {}

@Service
public class EmailDispatcherService {

    @Async
    public CompletableFuture sendEmailAsync(String to, String body) {
        try {
            Thread.sleep(2000); // Simulăm operație I/O lentă
            System.out.println("Email expediat în fundal către: " + to);
            return CompletableFuture.completedFuture(true);
        } catch (InterruptedException e) {
            return CompletableFuture.completedFuture(false);
        }
    }
}

Comunitate & Schimb de cunoștințe

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

Ai o nelămurire despre utilizarea comenzii @Async și @EnableAsync î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.