سؤال

ما هي الطرق المختلفة لإنشاء المهام المجدولة لتطبيقات الويب، مع أو بدون تطبيق ويب/سطح مكتب منفصل؟

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

المحلول

إذا كنا نتحدث عن منصة Microsoft، فسأقوم دائمًا بتطوير خدمة Windows منفصلة للتعامل مع مثل هذه المهام المجمعة.

يمكنك دائمًا الرجوع إلى نفس التجميعات التي يستخدمها تطبيق الويب الخاص بك لتجنب أي تكرار سيئ للتعليمات البرمجية.

نصائح أخرى

ناقش جيف هذا الأمر في مدونة Stack Overflow -http://blog.stackoverflow.com/2008/07/easy-background-tasks-in-aspnet/

في الأساس، اقترح جيف استخدام CacheItemRemovedCallback كمؤقت لاستدعاء مهام معينة.

أعتقد شخصيًا أنه يجب التعامل مع المهام التلقائية كخدمة، أو مهمة مجدولة لنظام Windows، أو وظيفة في SQL Server.

في نظام التشغيل Linux، يمكنك استخدام checkout cron.

أعتقد أن Stack Overflow نفسه يستخدم انتهاء صلاحية ApplicationCache لتشغيل كود الخلفية على فترات زمنية.

إذا كنت تستخدم مضيف Linux، فمن المؤكد أنك ستستخدمه كرون.

في نظام التشغيل Linux، يمكنك استخدام وظائف cron (http://www.unixgeeks.org/security/newbie/unix/cron-1.html) لجدولة المهام.

استخدم أدوات جلب عناوين URL مثل wget أو curl لتقديم طلبات HTTP GET.

قم بتأمين عناوين URL الخاصة بك بالمصادقة حتى لا يتمكن أي شخص من تنفيذ المهام دون معرفة المستخدم/كلمة المرور.

أعتقد أن برنامج جدولة المهام المدمج في Windows هو الأداة المقترحة لهذه المهمة.وهذا يتطلب تطبيقا خارجيا.

قد يكون هذا ما تبحث عنه أو لا يكون، لكن اقرأ هذا المقال، "محاكاة خدمة Windows باستخدام ASP.NET لتشغيل المهام المجدولة".أعتقد أن StackOverflow قد يستخدم هذه الطريقة أو على الأقل تم الحديث عن استخدامها.

الطريقة البسيطة جدًا التي استخدمناها حيث أعمل هي:

  1. قم بإعداد خدمة ويب/طريقة ويب تنفذ المهمة.يمكن تأمين خدمة الويب هذه باسم المستخدم/كلمة المرور إذا رغبت في ذلك.
  2. قم بإنشاء تطبيق وحدة تحكم يستدعي خدمة الويب هذه.إذا رغبت في ذلك، يمكنك مطالبة تطبيق وحدة التحكم بإرسال المعلمات و/أو استعادة نوع من المقاييس للإخراج إلى وحدة التحكم أو التسجيل الخارجي.
  3. قم بجدولة هذا الملف القابل للتنفيذ في برنامج جدولة المهام الذي تختاره.

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

استخدم أدوات جلب عناوين URL مثل wget أو curl لتقديم طلبات HTTP GET.

قم بتأمين عناوين URL الخاصة بك بالمصادقة حتى لا يتمكن أي شخص من تنفيذ المهام دون معرفة المستخدم/كلمة المرور.

يمكنك أيضًا أن تطلب من cron تشغيل نصوص php مباشرة، على سبيل المثال.ويمكنك تعيين الأذونات على ملف PHP لمنع الأشخاص الآخرين من الوصول إليها أو الأفضل من ذلك، عدم وجود هذه البرامج النصية المساعدة في دليل يمكن الوصول إليه عبر الويب...

جافا والربيع - استخدم الكوارتز.لطيفة جداً وموثوقة-- http://static.springframework.org/spring/docs/1.2.x/reference/scheduling.html

أعتقد أن هناك طرقًا أسهل من استخدام cron (Linux) أو برنامج جدولة المهام (Windows).يمكنك إنشاء هذا في تطبيق الويب الخاص بك باستخدام:(أ) جدولة الكوارتز،

أو إذا كنت لا ترغب في دمج مكتبة أخرى تابعة لجهة خارجية في تطبيقك:(ب) قم بإنشاء سلسلة رسائل عند بدء التشغيل تستخدم فئة Java القياسية "java.util.Timer" لتشغيل مهامك.

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