كيف يمكنني بدء تشغيل قائمة انتظار Azure تلقائيًا؟

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

  •  05-07-2019
  •  | 
  •  

سؤال

أرغب في إنشاء تطبيق Azure يحتوي على دورين عاملين ولا يحتوي على أدوار ويب.عند بدء تشغيل أدوار العامل لأول مرة، أريد أن يقوم دور واحد فقط بما يلي مرة واحدة:

  • قم بتنزيل وتحليل ملف رئيسي ثم enqueue مهام "طفل" متعددة بناءً على محتويات الملف الرئيسي
  • قم بإدراج مهمة "تابعة" لتنزيل ملف رئيسي واحد لتشغيلها في اليوم التالي

سيتم بعد ذلك تنفيذ كل مهمة من المهام "الفرعية" بواسطة كلا العاملين حتى يتم استنفاد قائمة انتظار المهام.فكر في الأمر برمته على أنه "تجهيز المضخة"

يكون هذا النوع من الأشياء سهلاً حقًا إذا قمت بإضافة المهمة "الرئيسية" الأولى يدويًا في قائمة الانتظار عن طريق استدعاء دور الويب ولكن يبدو أنه من الصعب جدًا القيام بها في وضع البدء التلقائي.

أي مساعدة في هذا الصدد سيكون موضع تقدير كبير!

شكرًا.....

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

المحلول

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

خيار (ربما) أفضل:استخدم نوعًا ما من آلية القفل للتأكد من أن مثيل عامل واحد فقط هو الذي يعمل على التهيئة.إحدى الطرق للقيام بذلك هي محاولة إنشاء قائمة الانتظار (أو كائن ثنائي كبير الحجم، أو كيان في جدول).إذا كان موجودًا بالفعل، فإن المثيل الآخر يتعامل مع التهيئة.إذا نجح الإنشاء، فهذه مهمة هذا المثيل.

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

نصائح أخرى

لقد انتهى بنا الأمر إلى مواجهة نفس النوع من المشكلات، ولهذا السبب قدمنا ​​ملفًا مخطط O/C (كائن إلى السحابة).في الأساس، تريد تقديم نوعين من الخدمات السحابية:

  1. QueueService التي تستهلك الرسائل كلما كانت متاحة.
  2. خدمة مجدولة تقوم بتشغيل العمليات على أساس مجدول.

ثم، كما اقترح آخرون، في السحابة، أنت تفضل حقًا استخدامها إيجارs بدلاً من الأقفال، لتجنب تجميد تطبيقك السحابي إلى الأبد بسبب مشكلة مؤقتة في الأجهزة (أو البنية التحتية).

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