pybreaker.

تطبيق Python لنمط قواطع الدائرة
التحميل الان

pybreaker. الترتيب والملخص

الإعلانات

  • Rating:
  • رخصة:
  • BSD License
  • اسم الناشر:
  • Daniel Fernandes Martins
  • موقع ويب الناشر:

pybreaker. العلامات


pybreaker. وصف

تطبيق Python لنمط قواطع الدائرة Pykbreaker هو تطبيق Python لنمط قواطع الدائرة، الموصوفة في كتاب مايكل T. Nygard في إطلاقه!. في كلمات Nygard's، يوجد قواطع الدائرة للسماح لنظام فرعي واحد بالفشل دون تدمير النظام بأكمله. يتم ذلك عن طريق التفاف العمليات الخطرة ( نقاط التكامل عادة) مع مكون يمكنه التحايل على المكالمات عندما يكون النظام غير صحي ".installationrun سطر الأوامر التالي لتنزيل أحدث إصدار مستقر من Pypreaker من Pypi: Easy_Install -U Pybreakerif أنت مستخدم GIT، قد ترغب في التنزيل النسخة التطويرية الحالية: GIT استنساخ GIT: //github.com/danielfm/pybreaker.git CD PyeCreaker Python Setup.py اختبار Python Setup.py InstallusAgehe الخطوة الأولى هي إنشاء مثيل من الدوائر الكهربائية لكل نقطة تكامل: استيراد Pybreakerdb_breaker = Pybreaker .Circuitable () للسماح بتخصيص أفضل مع الحفاظ على الرموز الذاتي الوارد، يوصى بإنشاء فئات فرعية من الدائرة لكل نوع من integrati عند نقطة: استيراد Pybreakerclass dbcircuittreaker (pybreaker.circuitablearcher): def on_state_change (الذات، old_state، new_state): "يسمى عند تغيير حالة قواطع الدائرة." تمرير def on_failure (الذات، exc): "يسمى عند رفع دعوة الوظيفة خطأ في النظام." تمرير def on_success (النفس): "يسمى عند نجاح استدعاء الوظيفة." passdb_breaker = dbcircuitablebreaker () يجب أن تعيش هذه الكائنات على مستوى العالم داخل نطاق التطبيق. ملاحظة: يشير التكامل إلى الخدمات الخارجية (IE قواعد البيانات، قوائم الانتظار، إلخ) من المرجح أن تفشل، لذلك تأكد من استخدام المهلة عند الوصول إلى هذه الخدمات إذا كان هناك دعم في مستوى API.لم تقول أنك تريد استخدام قواطع دوائر على وظيفة تقوم بتحديث صف في جدول قاعدة بيانات العميل: db_breakerdef Update_customer (Cust): # هل الأشياء هنا ... Pass # سيؤدي إلى تشغيل الدائرة Beakerupdated_customer = Update_customer (My_Customer) أو إذا كنت لا ترغب في استخدام بناء جملة Decorator: Def Update_customer (Cust): # هل الأشياء هنا ... Mass # سيؤدي إلى تشغيل الدائرة Breakerupdated_customer = db_creaker.call (update_customer، my_customer) ماذا يفعل قواطع الدائرة افعل؟ وفقا للمعلمات الافتراضية، سيفتح الكسارة الدائرة DB_Breaster تلقائيا الدائرة بعد 5 إخفاقات متتالية في update_customer. عندما تكون الدائرة مفتوحة، ستفشل جميع المكالمات إلى Update_Customer IMM Diately (رفع الدائريةإعادة) دون أي محاولة لتنفيذ العملية الحقيقية. بعد 60 ثانية، سيسمح قواطع الدائرة بالمكالمات التالية إلى Update_Customer عبر. إذا نجحت هذه الدعوة، يتم إغلاق الدائرة؛ ومع ذلك، إذا فشلت، فسيتم فتح الدائرة مرة أخرى حتى تنقل مهلة أخرى. Exceptionsbersy الافتراضي الافتراضي، تتمثل مكالمة فاشلة هي أي مكالمة ترفع استثناء. ومع ذلك، من الشائع إثارة الاستثناءات للإشارة أيضا إلى استثناءات الأعمال، وينبغي تجاهل هذه الاستثناءات من قبل قواطع الدائرة لأنها لا تشير إلى أخطاء النظام: # في إنشاء Timedb_breaker = dbcircuitable (accrude = (customervalidationerror،)) # في وقت لاحق timedb_breaker.excluded_exceptions + = (customervalidationError،) في هذه الحالة، عندما تقوم أي وظيفة تحت حراسة ذلك بضغط الدائرة ترفع CustomerValidationError (أو أي استثناء مشتق من CustomervalidationError)، لن يتم اعتبار هذه المكالمة فشل نظام. يمكنك استخدامها لمراقبة وتغيير حالتها الحالية: # احصل على العدد الحالي للفشل المتتالي DB_Creaker.Fail_Counter # الحصول على / تعيين الحد الأقصى لعدد الفشل المتتالي DB_BAIL_MAXDB_BRECKER.FAIL_MAX = 10 # الحصول على / تعيين فترة مهلة إعادة تعيين الحالية (في ثواني) طباعة db_breaker.reset_timeoutdb_breaker.reset_timeout = 60 # احصل على الحالة الحالية، أي "فتح"، "نصف مفتوح" ، "compurn'print db_breaker.current_state # يغلق circuitdb_breaker.close () # # نصف تفتتح circuitdb_open.half_open () # يفتح circuitdb_breaker.open () لذلك، إذا كان لديك تطبيق ويب باستخدام قواطع الدائرة حول نقاط التكامل، أنت يمكن بسهولة كتابة واجهة برمجة تطبيقية مريحة بسيطة لفضح هذه المهام لموظفي العمليات.


pybreaker. برامج ذات صلة

libjoyevent.

هذه المكتبة اعتراض أحداث عصا التحكم الشفافة، في وقت واحد تعديل / اخفاء / تسجيل / Generat ... ...

144

تحميل