هل هناك أي طريقة لتشغيل برنامج PHP النصي تلقائيًا على خادم الويب المستضيف باستخدام cron؟

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

سؤال

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

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

المحلول

ويمكنك استخدام webcron خدمة لتحريك السيناريو الخاص بك.

نصائح أخرى

لديك خارج AppEngine كرون جدول الوظائف:استخدم جوجل AppEngine, ، إنه حر.يمكن لـ "المهمة" الخارجية بعد ذلك "رد الاتصال" لبرنامج PHP النصي الخاص بك.

لا أستطيع أن أرى ما هو الخطأ في استخدام المحلي cron على جهازك رغم ذلك جانبا من أن يتم حظره لتتمكن من الوصول إليه.

في كلمات بسيطة، لا يمكنك تشغيل البرامج النصية فب دون استخدام نوع من جدولة أو كرون ...

لديك خياران:

  • محاكاة سلوك كرون:في كود php الخاص بك، تحقق مما إذا تم تحميل الصفحة في الوقت الذي ترغب في جدولة الإرسال فيه أو بالقرب منه، وإذا لم يتم إرسال الرسائل بعد، فقم بتحميل البرنامج النصي الذي يرسل الرسائل في الخلفية وقم بوضع علامة عليها كمرسلة .

  • كما اقترح الآخرون، قم بإعداد cronjob في مكان آخر من شأنه تنفيذ برنامج نصي على الخادم الخاص بك عن طريق جلب عنوان url عبر http (باستخدام wget على سبيل المثال)

واقامة مهمة كرون في أماكن أخرى، وتطلب السيناريو الذي يرسل التنبيهات.

ويمكنك تضمين السيناريو الخاص بك، وأنها تعمل في كل مرة بعض واحد يزور صفحتك الرئيسية / تسجيل الدخول الخ ... إعداد جدول في الخلية يسمى الوقت. الاستعلام عن قاعدة بيانات في كل مرة عند زيارة نفس الصفحة. إذا (حجة الوقت) {تشغيل البرنامج النصي في الخلفية، وتحديث الوقت الجديد في DB}

وكل ما عليك القيام به هو fuigure من عدد المرات التي تريد لإرسال رسائل البريد الإلكتروني والرسائل القصيرة الخاصة بك. السابق. 1 مرة في اليوم الواحد قاعدة بيانات الصف "الوقت" لديه تاريخ في ذلك. ويتيح التاريخ يقول قبل 24 ساعة. إذا كان الصف ديسيبل "الوقت" هو أقل من أو يساوي اليوم ناقص يوم 1 يوم واحد، ثم قم بتشغيل البرنامج النصي. سيتم تشغيل هذا البرنامج النصي الخاص بك مرة واحدة يوميا.

والسحب الخلفي -> شخص يحتاج لزيارة موقعك atleast مرة واحدة في اليوم

ما هو URL موقع الويب الخاص بك؟ ماذا تفعلين؟

وعن طريق webcron طرف ثالث مثل easycron.com .

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

إنه ليس الحل الأمثل، ولكن بدون استخدام أي نوع من برامج الجدولة، ما يمكنك فعله هو هذا.

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

الجانب السلبي من هذا هو أن:

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

ولقد استعملت ويندوز جدولة المهام لجدولة برنامج نصي على الخادم لم أتمكن من الوصول كرون على من قبل، التي عملت غرامة.

وهذه ليست أفضل إجابة لأنه لا يزال يتطلب كرون <م> مكان ، ولكن هل يمكن دائما إعداد جهاز آخر أن لديها كرون، مثل جهاز الكمبيوتر المنزلي على سبيل المثال، لتصل إلى صفحة على موقع الويب الخاص بك الذي يتسبب في العمل (باستخدام مكتبة مثل curl أو wget).

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