เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

การสร้าง Asynchronous Data Processing Pipeline

คุณกำลังสร้าง Analytics Dashboard ที่ต้องดึงข้อมูลผู้ใช้และบันทึกกิจกรรมจากบริการแยกต่างหาก แล้วนำมาประมวลผลเพื่อสร้างสรุปข้อมูลผู้ใช้ การดำเนินการนี้ควรทำแบบ Asynchronous เพื่อให้แอปพลิเคชันตอบสนองได้ตลอดเวลา งานของคุณคือนำไปใช้งานด้วย CompletableFuture

คลาส UserData และ UserSummary ได้โหลดไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

การปรับแต่งโค้ดใน Java

ดูคอร์ส

คำแนะนำการฝึกหัด

  • เพิ่มการดึงข้อมูลผู้ใช้ใน CompletableFuture
  • เพิ่มการประมวลผลข้อมูลผู้ใช้ใน CompletableFuture
  • เพิ่มการจัดการข้อผิดพลาดใน CompletableFuture

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

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) {}
    }
}
แก้ไขและรันโค้ด