मेरे पास कुछ नियंत्रक और कुछ रेक कार्यों के साथ एक साधारण रेल एप्लिकेशन है। क्रोन द्वारा whenever gem के साथ कॉन्फ़िगर किए गए कुछ कार्यों को निष्पादित किया जाता है।रेक कार्यों में रेल अपवाद नोटिफ़ायर
मेरे काम में से एक दैनिक निष्पादित किया जाता है और कुछ समय यह एक अपवाद को जन्म देती है और डिफ़ॉल्ट रूप से मैं क्रॉन द्वारा इस चेतावनी प्राप्त
rake aborted!
undefined method `parameterize' for nil:NilClass
Tasks: TOP => mailboxes:clean_processed
(See full trace by running task with --trace)
मैं डिबग करने के लिए क्या हो रहा है और इस कारण के लिए मैं सिर्फ इस exception notification स्थापित किया है चाहता हूँ मेरी Gemfile
gem "exception_notification", "~> 2.4.1", :require => 'exception_notifier'
में इस लाइन के साथ मणि और
के साथ मेरीapplication.rb
फ़ाइल में कॉन्फ़िगर किया गया
चूंकि यह मणि एक रैक मिडलवेयर है, यह केवल वेब अनुरोधों के लिए काम करता है, न कि रेक कार्यों के लिए। मैं इसे रेक कार्यों के लिए भी सक्षम करना चाहता हूं और मुझे this gist मिल गया जो नौकरी करता है।
यह काम करता है, लेकिन यह सूखी, मुझे लगता है कि विधि में मणि विन्यास दोहराने की आवश्यकता नहीं है और मैं के रूप में भी एक ब्लॉक में उनके बयान संलग्न करने के लिए अपने सभी रेक कार्यों को बदलने के लिए
exception_notify { actual_task_code }
वहाँ किसी भी है में की जरूरत है इसे हल करने का बेहतर तरीका?
पीएस अगर मुझे अधिसूचना मणि बदलने की जरूरत है तो कोई समस्या नहीं होगी क्योंकि मैंने अपनी परियोजना में कोड की केवल कुछ पंक्तियां जोड़ दी हैं।
पी.पी.एस. मुझे पता है कि मैं --trace
विकल्प जोड़ने के लिए क्रोंटैब में रेक लाइन भी बदल सकता हूं, लेकिन मुझे यह समाधान पसंद नहीं है, क्योंकि अपवाद नोटिफ़ायर इम्हो एक बेहतर समाधान है जो वेब कोड में भी मदद करता है।
अद्यतन मुझे अभी यह संबंधित प्रश्न पता चला है: exception_notification for delayed_job लेकिन दोनों उत्तर एक ही चाल का उपयोग करते हैं।
मैं airbrake (पूर्व भेक के रूप में जाना जाता है) या असाधारण तरह एक ऑनलाइन सेवा के साथ प्रयास करने जा रहा हूँ, लेकिन उन दोनों को भुगतान कर रहे हैं सेवाओं ...
अद्यतन 2: मैं Airbrake App की कोशिश की, बहुत अच्छा आवेदन, लेकिन यह एक ही समस्या के लिए पीड़ित है, मुझे अभी भी रेक कार्यों से अपवादों को सूचित करने के लिए रेकैकाइल को हैक करने की आवश्यकता है। हालांकि हैक कम सूखा है क्योंकि आपको बस इस कोड की आवश्यकता है:
# notify exceptions
def exception_notify
yield
rescue Exception => exception
HoptoadNotifier.notify exception
raise exception
end
किसी कॉन्फ़िगरेशन पैरामीटर को दोहराने की कोई आवश्यकता नहीं है। मुझे लगता है कि रेक रेक कार्यों में अपवादों को अधिसूचित करने के लिए मैं इससे बेहतर नहीं कर सकता।
रेक त्रुटियों के लॉगिंग को सक्षम करने के लिए, आपको '' 'config.rescue_rake_exceptions = true''' को' '' conifg/startizers/airbrake.rb''' 'पंक्ति में जोड़ना होगा। – KurtPreston