Python डेवलपर इंटरव्यू सवाल

ऐसा endpoint आप कैसे बनाएंगे जिसे तीन धीमी upstream सर्विसेज से डेटा चाहिए?

इंटरव्यूअर असल में क्या परख रहा है, अपना जवाब कैसे स्ट्रक्चर करें, और एक बोला हुआ उदाहरण जिसे आप अपना सकते हैं।

छोटा जवाब

उन्हें एक के बाद एक नहीं, साथ में कॉल करें। async framework में तीनों को asyncio.gather या task group से शुरू करें ताकि कुल latency सबसे धीमी कॉल जितनी हो, तीनों का जोड़ नहीं। हर कॉल पर timeout रखें, तय करें कि कौन से responses वैकल्पिक हैं ताकि फेल होने के बजाय आप घटी हुई सेवा दे सकें, और जो स्थिर है उसे cache करें। अगर client सह सके तो उसे job id लौटा दें।

इंटरव्यूअर यह क्यों पूछते हैं

यह Python के कपड़े पहने सिस्टम डिजाइन का सवाल है। इंटरव्यूअर concurrency की समझ चाहता है, पर उससे ज्यादा failure की सोच: हर network कॉल पर timeout, आंशिक रूप से घटी सेवा, और एक dependency के बंद होने पर यूजर को क्या दिखता है। जो सिर्फ gather कहकर रुक जाते हैं उन्होंने ऐसा कुछ नहीं चलाया जो उनके काबू से बाहर की सर्विसेज पर टिका हो।

अपना जवाब कैसे स्ट्रक्चर करें

  • क्रम से होने वाली कॉल को साथ चलने वाली बनाएं।
  • हर बाहरी कॉल पर timeout लगाएं।
  • तय करें कि क्या वैकल्पिक है और शालीनता से घटी सेवा दें।
  • caching जोड़ें या काम को background job पर भेजें।

उदाहरण जवाब

बोला हुआ उदाहरण, पहले व्यक्ति में

क्रम से चलने पर वे तीनों latencies जुड़ जाती हैं, तो पहला कदम उन्हें साथ चलाना है। httpx और async handler के साथ मैं तीनों coroutines को gather करता हूं, या task group लेता हूं ताकि एक के फेल होने पर बाकी साफ तरीके से cancel हो जाएं, और तब endpoint की कीमत जोड़ की जगह लगभग सबसे धीमे upstream जितनी रह जाती है। हर कॉल को साफ साफ timeout मिलता है, क्योंकि ज्यादातर clients में डिफॉल्ट व्यावहारिक रूप से अनंत है और एक अटका सॉकेट पूरा worker pool खा जाएगा। फिर मैं तय करता हूं कि जरूरी क्या है। अगर तीन में से दो सिर्फ सजावट हैं, तो मैं एक्सेप्शन उठाने के बजाय उन्हें इकट्ठा करता हूं और पांच सौ फेंकने के बजाय पेज उनके बिना दिखा देता हूं, और एक metric भेजता हूं ताकि हमें पता रहे कि ऐसा हुआ। जो स्थिर है वह cache होता है, क्योंकि साठ सेकंड की caching भी ज्यादातर लोड हटा देती है। अगर client सह सके, तो बेहतर आकार यह है कि request लेकर काम को queue में डालें और poll करने लायक job id लौटा दें, जिससे upstream latency request path से पूरी तरह हट जाती है।

जल्दी ही यह इंटरव्यू देने जा रहे हैं? GhostPilot आपकी लाइव कॉल सुनता है, सवाल पूछे जाते ही उसे पकड़ लेता है, और रियल-टाइम में एक स्ट्रक्चर्ड जवाब आपकी स्क्रीन पर डाल देता है। अगले मॉक में इसे आजमाएं, या ले लें एक $29 Session Pass, कोई सब्सक्रिप्शन नहीं, असली इंटरव्यू के लिए।

देखें यह कैसे काम करता है

फॉलो-अप सवाल जिनकी उम्मीद रखें

  • अगर एक upstream आपके timeout के आगे भी अटका रहे तो क्या होगा?
  • उन tasks में cancellation कैसे आगे पहुंचाते हैं?
  • circuit breaker आप कहां रखेंगे?

Python डेवलपर के और सवाल

आपका इंटरव्यूअर इसका अपना वर्ज़न पूछेगा। फ्री Question Predictor में अपना असली जॉब डिस्क्रिप्शन पेस्ट कीजिए और वो 20 सवाल पाइए जो उस रोल में सबसे ज्यादा पूछे जाने की संभावना है, साथ में यह भी कि हर सवाल असल में क्या टटोल रहा है।

मेरे सवाल प्रेडिक्ट करें

मुश्किल सवाल पूछे जाने से पहले उनकी रिहर्सल कीजिए

एक लाइव कोपायलट के साथ प्रैक्टिस कीजिए, फिर तैयार होकर अंदर जाइए। $29 Session Pass आपको इंटरव्यू पार करा देता है, न कोई सब्सक्रिप्शन, न कोई लॉक-इन।

GhostPilot पाएं