سؤال

هل هناك طريقة لبرنامج جافا للكشف عندما يكون نظام التشغيل هو على وشك الذهاب الى النوم، أو إذا تعذر ذلك، على الأقل الكشف عن إيقاظ؟

والمشكلة الفعلية هي أن في تطبيق معين يتم تشغيل عدد من عمليات قواعد البيانات MySQL في الخلفية. في اختبار على جهاز ويندوز وتوقفت هذه المعاملات قاعدة البيانات بعد / دورة إيقاظ النوم تسبب طن من حالات الخطأ في البرنامج. هذه الأخطاء عادة ما ننظر بشيء من هذا القبيل:

java.net.SocketException
MESSAGE: Software caused connection abort: recv failed

إذا نحن يمكن أن تتفاعل مع هذا الحدث "سوف ينام قريبا" يمكننا أن محاولة لإيقاف العمليات الخلفية استباق المشكلة. أقل من الناحية المثالية إذا لم نتمكن من الرد على "استيقظت للتو" حدث يمكننا أن ما لا يقل عن قمع رسائل الخطأ.

هل كانت مفيدة؟

المحلول

هل يمكن كشف عن التنبيه من قبل دورية مقارنة وقت النظام الحالي إلى وقت النظام السابق.

وتحرير: وهنا مثال الذي يبدو أنه من شأنه أن يساعد على اكتشاف عندما يكون الجهاز هو الذهاب الى النوم: http://www.codeguru.com/cpp/wp/system /messagehandling/article.php/c6907

نصائح أخرى

وأنا أعلم أنها ليست بالضبط ما كنت أبحث عنه، ولكن ربما الجواب الصحيح هو محاولة لكتابة التعليمات البرمجية مع افتراض عدم ومآخذ الخاص بك لا تبقى بالضرورة ما يصل. هناك الكثير من الأسباب التي تجعل الاتصال يمكن أن تعطل، على سبيل المثال لأخذ DB أسفل للصيانة، أو لشخص ما تعثرت عبر الكابل إيثرنت. كنت أعتقد أن لديهم مشاكل مماثلة مع الأخطاء إذا سحب شخص خارج كابل الشبكة أثناء التطبيق والتشغيل، وهذه ليست يسمع من الظروف، لذلك ربما يكون أفضل نهج لمحاولة التعامل مع تلك الظروف بأمان.

scroll top