तीसरे पक्ष के पुस्तकालयों में से एक शायद ही कभी अजीब व्यवहार करता है और कुछ अजीब स्थिति में आवेदन प्राप्त करता है जिसे पुनर्प्राप्त करना संभव नहीं है। इसलिए मैंने त्रुटि को पकड़ने के लिए एक एस्केप हैच बनाया और फिर मैं process.exit(0) को इस उम्मीद में कॉल करता हूं कि हेरोकू इसे फिर से शुरू कर देगा।

आज इसकी पहली घटना थी और दुर्भाग्य से, डायनो को पुनरारंभ करने का निर्णय लेने से पहले हेरोकू को लगभग 10 मिनट लग गए। यह रास्ते में error code=H10 desc="App crashed" के साथ स्पैमिंग करता रहा।

इसे संभालने का एक बेहतर तरीका क्या हो सकता है ताकि हरोकू तुरंत पुनरारंभ हो जाए? मैं हेरोकू एपीआई को कॉल करने से बचना चाहता हूं, यह अजीब कामकाज है।

0
FredyC 1 सितंबर 2020, 16:05

1 उत्तर

सबसे बढ़िया उत्तर

सबसे पहले, मुझे लगता है कि आपका "एस्केप हैच" आपके नोड एप्लिकेशन की "अजीब स्थिति" को संभालने के लिए एक अच्छा अभ्यास नहीं है। आपको समस्या से सीधे तौर पर निपटना चाहिए, हो सकता है कि उस तृतीय पक्ष लाइब्रेरी को हटा दें और सुनिश्चित करें कि आपका एप्लिकेशन हर समय अपेक्षित रूप से काम करता है।

ऐसा कहा जा रहा है, तथ्य यह है कि "हेरोकू को लगभग 10 मिनट लग गए" क्योंकि आप शायद उनके 'सामान्य रनटाइम' का उपयोग कर रहे हैं। यदि आप चाहते हैं कि आपकी सेवाएं विफल होने पर तुरंत रीबूट हो जाएं, तो आपको उन्हें उनके 'निजी स्थान रनटाइम' में चलाना होगा।

दस्तावेज़ से:

सामान्य रनटाइम डायनोस को क्रैश करने के लिए एक वृद्धिशील बैकऑफ़ नीति लागू करता है

निजी स्पेस रनटाइम में बैकऑफ़ नीति नहीं होती है। जब एक डायनो दुर्घटनाग्रस्त हो जाता है तो इसे बिना किसी कूल-ऑफ अवधि के लगातार चालू किया जाएगा।

1
stvn 1 सितंबर 2020, 13:19