2009-03-20 16 views
5

हमारी टीम में कई प्रक्रियाएं हैं जिन्हें हम मैन्युअल रूप से चलाते हैं लेकिन जो कई दिनों तक चल सकता है। प्रक्रियाएं बड़ी संख्या में इकाइयों (वेब ​​पेज, डेटाबेस पंक्तियों, छवियों, फाइलों, आदि) के लिए विभिन्न चीजें करती हैं। जाहिर है समय-समय पर असफलताएं होती हैं और हमें इन असफलताओं को सुदृढ़ तरीके से संभालने और आगे बढ़ने के लिए डिजाइन या प्रक्रिया करना पड़ता है ताकि पूरे काम को कम नहीं किया जा सके।लंबी चल रही प्रक्रियाओं में चेतावनियों/त्रुटियों को ट्रैक करने के लिए सर्वोत्तम प्रथाएं क्या हैं?

प्रश्न में विशेष प्रक्रिया के आधार पर, विफलता की दर, गंभीरता और तत्कालता भिन्न होती है। कुछ मामलों में जब हम दुर्लभ लेकिन महत्वपूर्ण त्रुटि होती है तो हम ईमेल भेजते हैं, अन्य मामलों में हम इसे लॉग ऑन करते हैं और आगे बढ़ते हैं।

समस्या यह है कि हमारे पास हर जगह बिखरे हुए अलग-अलग त्रुटि हैंडलिंग कोड हैं और जब हम "इसे लॉग ऑन करें और आगे बढ़ें" नहीं, तब तक कोई भी कभी वापस नहीं जाता है और लॉग पढ़ता है, इसलिए कोई भी कभी नहीं जानता कि कौन सी समस्याएं हुईं। हम सभी समस्याओं के लिए ईमेल करने के लिए डिफ़ॉल्ट नहीं हो सकते हैं क्योंकि वहां बहुत सारे ईमेल होंगे।

ये लंबी चल रही प्रक्रियाएं हैं लेकिन डेमॉन नहीं हैं जहां एसएनएमपी या नागोस जैसे कुछ अच्छे फिट महसूस कर सकते हैं। निश्चित रूप से यह एक आम समस्या है लेकिन मुझे ऑनलाइन कई समाधान नहीं मिल रहे हैं। मैंने डेटाबेस को लॉग इन करने के लिए लॉग 4j (या अन्य समान लॉगिंग पैकेज) का उपयोग करने के बारे में बात करते हुए सुना है, ऐसा लगता है कि यह सही दिशा में एक कदम हो सकता है, लेकिन निश्चित रूप से अब तक और अधिक परिष्कृत समाधान हैं .. ? मैं कुछ ऐसा सोच रहा हूं जहां आपका लॉगर डेटाबेस में ईवेंट लिखता है और वहां एक नागोस-जैसे वेब इंटरफ़ेस है जो आपको यह देखने देता है कि वास्तविक समय में कौन सी प्रक्रियाएं हो रही हैं और साथ ही विशिष्ट पैटर्न आदि के लिए ईमेल अलर्ट कॉन्फ़िगर कर सकते हैं।

क्या ऐसा कुछ मौजूद है? यदि नहीं, तो आप किस तरह के मुद्दों के साथ सफलतापूर्वक निपटने के लिए उपयोग करते हैं?

(हमारे कोडबेस के अधिकांश मूल्यों के लिए यह अजगर में है, लेकिन मुझे लगता है कि इस विचार के किसी भी सभ्य कार्यान्वयन बड़े पैमाने पर गैर-क्रिया-विशिष्ट हैं और जाहिर है कि कोई वैचारिक समाधान भी होगा)।

अद्यतन: मैंने कुछ समय देखा है जो चेनसॉ को देख रहा है, जो कि मैं जिस तरह की तलाश कर रहा हूं, लेकिन मैं इसे डेस्कटॉप ऐप के बजाय वेबपैप बनना चाहता हूं, और कार्यक्षमता को सतर्क कर रहा हूं।

अपडेट: मैंने अभी hoptoadapp और exceptional की खोज की है जो कि मैं सोच रहा था कि दोनों पंक्तियों के साथ कुछ हद तक हैं, हालांकि दोनों लक्ष्य रेल विशेष रूप से हैं।

उत्तर

0

मुझे लगता है कि आपको जो कुछ चाहिए वह पहले से ही बनाई गई कुछ चीज़ों को ढूंढने के लिए बहुत विशिष्ट है जो आपकी आवश्यकताओं को अच्छी तरह से फिट करेगी। परंतु...

log4j के बारे में आपने जो वर्णन किया है वह मेरे लिए बहुत अच्छा लगता है: एक बार जब आप डीबी में लॉग इन करते हैं, तो एक साधारण वेब-ऐप आपको उन पर नजर डालने, फ़िल्टर करने और पैटर्न को सेट करने के लिए पैटर्न सेट अप करने देता है जैसे त्रुटियों से एक विशिष्ट ऐप, त्रुटि स्तर थ्रेसहोल्ड, संदेश कुछ रेगेक्स, आदि

इसके अलावा, आपको कुछ छोटे cronjob की आवश्यकता होगी जो डीबी से कनेक्ट होगा, ईमेल मानदंडों से मेल खाते नए रिकॉर्ड (पिछली बार चेक के आधार पर) और उन्हें बाहर भेजो।

यह सब कोडिंग कुछ दिनों से अधिक समय तक नहीं लेना चाहिए और इसके लायक होने के लिए, आप के लिए 100% कस्टम टूल समाप्त हो जाएगा।

1

ठीक है, ऐसा लगता है कि एक व्यावहारिक समाधान त्रुटि लॉग को पचाने के लिए होगा। प्रत्येक नाइट में त्रुटि लॉग के माध्यम से एक प्रक्रिया होती है और दिन के लिए त्रुटि/चेतावनी/आदि को रोल करती है और उन्हें ईमेल में डाल देती है। यदि आप चाहें तो आप उन्हें गंभीरता और/या एप्लिकेशन द्वारा भी समूहित कर सकते हैं।

अंत में आपको अपनी उंगलियों पर सभी जानकारी के साथ दिन में केवल एक ईमेल मिलता है। एक "त्वरित" या यहां तक ​​कि सुरुचिपूर्ण समाधान नहीं है लेकिन लंबे समय तक बहुत कामयाब हो सकता है।

यह भी किसी भी वास्तविक समय विकल्प बर्दाश्त नहीं करता है। लेकिन इससे आप इसे एक और वास्तविक समय समाधान में विकसित कर सकते हैं। ऐसी प्रक्रिया लिखना मुश्किल नहीं होगा जो परिवर्तनों के लिए लॉग फ़ाइलों पर नज़र रखता है और फिर अंतिम त्रुटि संदेश के आधार पर कुछ नियमों को निकाल देता है। यह पार्सिंग है जो मुश्किल हो जाती है। ;) सौभाग्य।

संबंधित मुद्दे

 संबंधित मुद्दे