Sqlalchemy: الكتابة إلى قاعدة البيانات بعد إرسال الاستجابة

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

سؤال

لدي خدمة بسيطة تفيد تقريبًا:

  1. يتصل عميل HTTP بالخادم
  2. يكتب الخادم SessionId للعميل والجدول الزمني لقاعدة البيانات ، وفي معظم الحالات يعيد فقط استجابة فارغة

(الحالات التي تقوم فيها بعمل حقيقي وإرجاع البيانات الفعلية غير ذات صلة بهذا السؤال)

من أجل إرجاع هذا الرد في أقرب وقت ممكن ، أود أن أكتب المعلومات إلى Memcache في جسم معالج الطلب (لأن Memcache سريع) ، وتفرخ مؤشر ترابط منفصل حيث ستقوم وظيفة أخرى باستخدام SqlalChemy أن يكتبها إلى المستمر تخزين. وبهذه الطريقة ، سأتمكن من العودة فورًا بعد الكتابة إلى Memcache وتفريغ مؤشر ترابط ، ولن يضطر معالج الطلب إلى الانتظار حتى يحفظ SqlalChemy المعلومات إلى قاعدة البيانات.

هل لهذا معنى؟ إذا كانت الإجابة بنعم ، فكيف يمكنني تنفيذها؟

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

المحلول

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

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