Asynchronous डेटा प्रोसेसिंग पाइपलाइन लागू करना
आप एक एनालिटिक्स डैशबोर्ड बना रहे हैं जिसे अलग-अलग सर्विसेज़ से यूज़र डेटा और activity logs फ़ेच करने हैं, फिर उन्हें प्रोसेस करके एक यूज़र समरी तैयार करनी है. यह ऑपरेशन आपकी एप्लिकेशन को responsive रखने के लिए asynchronously किया जाना चाहिए. आपको इसे CompletableFuture का उपयोग करके लागू करने का कार्य दिया गया है.
UserData और UserSummary क्लास आपके लिए पहले से प्रीलोडेड हैं.
यह अभ्यास पाठ्यक्रम का हिस्सा है
Java में कोड ऑप्टिमाइज़ करना
अभ्यास निर्देश
CompletableFutureमें यूज़र डेटा फ़ेच करना जोड़ें.CompletableFutureमें यूज़र डेटा प्रोसेस करना जोड़ें.CompletableFutureमें exception हैंडलिंग जोड़ें.
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
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) {}
}
}