استدعاءات الإجراءات المخزنة غير المتزامنة

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

  •  09-06-2019
  •  | 
  •  

سؤال

هل من الممكن استدعاء إجراء مخزن من إجراء مخزن آخر بشكل غير متزامن؟

يحرر: على وجه التحديد أنا أعمل مع قاعدة بيانات DB2.­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­

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

المحلول

ملخص تنفيذي:نعم، إذا كانت قاعدة البيانات الخاصة بك تحتوي على خدمة قائمة انتظار الرسائل.

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

  • وحي:طوابير
  • خادم قاعدة البيانات:وسيط الخدمة
  • DB2:وسيط الحدث

بالنسبة للغات الإجراءات المخزنة "الخالصة" (PL/Sql أو T-Sql) الإجابة هي لا، لأنها تعمل ضد نموذج المعاملة الأساسي الذي تمتلكه معظم قواعد البيانات.

ومع ذلك، إذا كانت قاعدة البيانات الخاصة بك تحتوي على آلية انتظار، فيمكنك استخدامها للحصول على نفس النتيجة.

نصائح أخرى

باستخدام MS Sql Server 2005، جرب إجراءات Service Broker و/أو CLR المخزنة.لا أعتقد أن هناك أي شيء مدمج مباشرة في TSQL.

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

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