django_transaction_signals.

يضيف المعالجات إشارة post_commit و post_rollback إلى django
التحميل الان

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

الإعلانات

  • Rating:
  • رخصة:
  • Other/Proprietary Li...
  • السعر:
  • FREE
  • اسم الناشر:
  • David Hughes
  • موقع ويب الناشر:
  • https://github.com/davehughes/

django_transaction_signals. العلامات


django_transaction_signals. وصف

أثناء العمل في مستودع ASU الرقمي، وجدت أنني بحاجة إلى القدرة على تشغيل عمليات الاسترجاعات عند ارتكاب المعاملة. بدا أن إشارات Django هي الآلية المثالية، لكن إشارات ارتكاب المعاملات والتراجع ليست (اعتبارا من هذه الكتابة) مدعومة في الإطار الأساسي. (انظر هذه التذاكر في Django Strack Tracker for Background: Ticket # 14050، تذكرة # 14051) ومع ذلك، يبدو أن GIST كتبها Grgoire Cachet يمكن أن تفعل الخدعة. ويضيف وظائف معالجة إشارة مخصصة ووظائف تعاملات DJANGO الخاصة ب Post_Commit و Post_Rollback Signals.django_transaction_signals هو تطبيق Django يمتد إلى أن GIST في الطرق التالية: - يضيف دالة Defer () التي يمكن استخدامها داخل المعاملة تأجيل إعدام وظيفة حتى تلتزم المعاملة (وجدت أن هذا مفيد للغاية لإثارة مهام الكرفس تعتمد على الكائنات المرتكبة). - الحراس ضد معالجات الإشارة التي تصرفت بشدة (أي تلك التي تترك المعاملة الحالية في حالة قذرة) و يثير badlybehavedtransactionsignalhandlerlerverror عندما يكتشف معالج سوء التصرف. - مسح معالجات على خروج المعاملة بغض النظر عما إذا كان الالتزام، الاستعادة، أو لم يحدث ذلك. يعمل هذا على إصلاح مشكلة حيث يمكن للمعالجين أن يتراكم ويتم تشغيله في معاملة لاحقة. الأمراض الجلدية (من GIST الأصلي): يجب عليك التأكد من تحميل هذا قبل استخدام الإشارات. على سبيل المثال، أضف السطر التالي إلى مشروع المشروع الخاص بك __init. PY FILE: استيراد django_transaction_signalsthen، لاستخدام الإشارات، لاستخدام وظيفة، وإنشاء وظيفة وربطها إلى إشارة post_commit إذا كنت تستخدم متغيرات غير محلية في وظيفة رد الاتصال بك، فتأكد من استخدام المرجع غير الضعيف أو يمكن أن تكون المتغيرات التي يتم جمعها من القمامة قبل أن يتم استدعاء الوظيفة. على سبيل المثال، في طريقة حفظ () Model: Def Save (Self، * Args، ** Kwargs): Def My_function (** Kwargs): # هل اشياءك هنا # الوصول إلى المعاملة الذاتية الذاتية. post_commit.connect ( My_Function، ضعيف = خطأ) استخدام DEFER () دالة: Defer () يسجل وظيفة ليتم تشغيلها عند إكمال النجاح من المعاملة الحالية (إذا كان أحد موجودا). يتركل الدعوة إلى تأجيل (func، * args، ** kwargs) إلى ما يلي: - إذا كانت المعاملة نشطة، فقم بتسجيل مستمع ما بعد الالتزام لتنفيذ FUNC (* ARGS، ** KWARGS) - إذا لم تكن هناك معاملة نشطة، فقم بتنفيذ Func (* Args، ** Kwargs) مثال على ذلك يوضح تحديث للمعاملات كائن نموذجي يقوم بتنفيذ مهمة كرفس يتم تنفيذها عند ارتكاب المهمة بنجاح. من Celery.Task استيراد المهلة DJango.db استيراد التصنيعمن Django_Transaction_signals استيراد Deferimport Pysolr @ Comment_on_successdef Update_Object (OBJ): # ... تعديل وحفظ الكائن ... تأجيل (Index_Object.Delay، OBJ) # ... القيام ببعض الأعمال الإضافية في المعاملة ... @ TaskDef Index_Object (OBJ): index_obj = {' معرف ': obj.id} # ... بناء كائن مؤشر ... Solr = pysolr.solr (http: // localhost: 8080 / solr') solr.add () الصفحة الرئيسية للمنتج المنتج


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

Django-Calendar-SMS

يمكن أن يساعدك تطبيق Django القابل لإعادة الاستخدام في إرسال الرسائل القصيرة عبر تقويم Google ...

37

تحميل