Začněte nyníZačněte zdarma

Implementace asynchronního pipeline pro zpracování dat

Vytváříš analytický dashboard, který potřebuje načítat data uživatelů a záznamy aktivit z různých služeb a následně je zpracovat do podoby souhrnu uživatele. Aby aplikace zůstala responzivní, má se tato operace provádět asynchronně. Tvým úkolem je implementovat ji pomocí CompletableFuture.

Třídy UserData a UserSummary jsou pro tebe předem načteny.

Toto cvičení je součástí kurzu

Optimalizace kódu v Javě

Zobrazit kurz

Pokyny k cvičení

  • Přidej načítání dat uživatele do CompletableFuture.
  • Přidej zpracování dat uživatele v CompletableFuture.
  • Přidej ošetření výjimek v CompletableFuture.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

public class AsyncDashboard {
    public static void main(String[] args) throws Exception {        
        CompletableFuture userSummaryFuture = CompletableFuture
            // Fetch the user data
            .____(() -> fetchUserData("user123"))
            
            // Create summary based on fetched data
            .____(userData -> createSummary(userData))
            
            // Add exception handling
            .____(ex -> new UserSummary(new UserData("error", "Error User"))); 
        Thread.sleep(5000);
    }
    
    private static UserData fetchUserData(String userId) {
        simulateNetworkLatency(300);
        return new UserData(userId, "John Doe");
    }
    
    private static UserSummary createSummary(UserData userData) {
        simulateNetworkLatency(200);
        return new UserSummary(userData);
    }
    
    private static void simulateNetworkLatency(int millis) {
        try { Thread.sleep(millis); } catch (InterruptedException e) {}
    }
}
Upravit a spustit kód