BaşlayınÜcretsiz başlayın

Asenkron bir veri işleme hattı uygulamak

Ayrı servislerden kullanıcı verilerini ve etkinlik günlüklerini (activity logs) çekip bunları işleyerek bir kullanıcı özeti oluşturman gereken bir analitik pano geliştiriyorsun. Uygulaman tepkisel kalsın diye bu işlemin asenkron yapılması gerekiyor. Bunu CompletableFuture kullanarak uygulamakla görevlendirildin.

UserData ve UserSummary sınıfları senin için önceden yüklendi.

Bu egzersiz, kursun bir parçasıdır

Java'da Kod Optimizasyonu

Kursa Göz Atın

Egzersiz talimatları

  • CompletableFuture içinde kullanıcı verilerini çekmeyi ekle.
  • CompletableFuture içinde kullanıcı verilerini işlemeyi ekle.
  • CompletableFuture içinde hata yakalamayı ekle.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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) {}
    }
}
Kodu Düzenle ve Çalıştır