هل هناك أي مخاوف يجب أن أمتلكها بشأن تخزين كائن قفل بيثون في جلسة دورق؟

StackOverflow https://stackoverflow.com/questions/2794829

سؤال

هناك صفحة معينة على موقع الويب الخاص بي حيث أريد منع المستخدم نفسه من زيارته مرتين على التوالي. لمنع ذلك ، أخطط لإنشاء كائن قفل (من مكتبة خيوط Python). ومع ذلك ، سأحتاج إلى تخزين ذلك عبر الجلسات. هل هناك أي شيء يجب أن أحترقه عند محاولة تخزين كائن قفل في جلسة (على وجه التحديد جلسة دورق)؟

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

المحلول

يعد تخزين thinding.lock في جلسة (أو في أي مكان آخر يحتاج إلى التسلسل) فكرة فظيعة ، ويفترض أنك ستحصل على استثناء إذا حاولت (نظرًا لأن مثل هذا الكائن لا يمكن التسلسل ، على سبيل المثال ، لا يمكن أن يكون pickleد). يعتمد النهج التقليدي للتسلسل التعاوني للعمليات قفل الملف (على الملفات "الاصطناعية" على سبيل المثال في دليل مثل /tmp/locks/<username> إذا كنت تريد أن يكون القفل لكل مستخدم ، كما تشير). أعتقد أن دخول ويكيبيديا يقوم بعمل جيد لوصف المنطقة العامة ؛ إذا أخبرتنا ما هو نظام التشغيل الذي تقوم بتشغيله ، فقد نقترح شيئًا أكثر تحديداً (للأسف لا أعتقد أن هناك حلًا عبر المنصات لهذا الغرض).

نصائح أخرى

لقد أدركت للتو أن هذا كان سؤالًا فظيعًا لأن قفل القفل وحفظه في الجلسة يأخذ خطوتين وبالتالي هزيمة الغرض من الإجراءات الذرية للقفل.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top