بعد أن تحولت Harvey Hardware Network إلى منصة جديدة للإصدارات الإخبارية الأسبوع الماضي، بسبب الاحتياجات المؤقتة، لم يتم إيقاف منصة الأخبار الأصلية تمامًا، لذلك بعد بدء استخدام المنصة الجديدة، تم اكتشاف مشكلة في الصفحة الرئيسية للموقع يتم تحديثه دائمًا إلى محتوى النظام الأصلي، مما يؤدي في النهاية إلى عدم القدرة على الوصول إلى رابط أخبار معين بشكل طبيعي. قام النظام الجديد بتحسين عنوان URL، ويختلف عنوان URL لصفحة الأخبار عن النظام الأصلي. في البداية، اعتقدت أن السبب هو أن شخصًا ما لا يزال يستخدم النظام القديم، لكن الوضع ما زال يحدث في اليوم التالي، لذلك اعتقدت أنه قد يكون هناك مشكلة في النظام القديم، وبعد ذلك قمت بالتحقق ووجدت أن نظام Empire CMS كان كذلك مهمة افتراضية هي تحديث الصفحة الرئيسية، لذا ألغيتها وبعد ذلك سيتم تحديث الصفحة الرئيسية للموقع بشكل طبيعي.
بعد حل هذه المشكلة، أصبحت مهتمًا بمهام PHP التي تعلمتها من قبل، لكنني لم أمارسها حقًا. ربما نظرًا لأهمية هذه الوظيفة في تطوير نظام مواقع الويب، قررت أن أدرسها الآن وأكتب مجموعة منها كود ناضج للتطبيق في المستقبل.
الأول هو البحث عن المعلومات ذات الصلة عبر الإنترنت، ومن خلال قراءة هذه المعلومات، أعلم أنه يمكن تقسيم مهام PHP تقريبًا إلى ثلاث فئات.
المهام المجدولة للخادم
يمكن لخادم WIN استخدام المهام المجدولة مباشرة لتنفيذ التطبيقات ذات الصلة، ويمكن تنفيذ خادم Linux عن طريق إضافة المهام المجدولة في /etc/crontab.
تنفيذ المهام تلقائيًا من خلال حلقة لا نهائية
قم بإنشاء صفحة ملف برنامج، واستخدمgnor_user_abort لتعيينها لتكون قابلة للتنفيذ بعد إغلاق صفحة المتصفح. بعد ذلك، بعد تشغيل صفحة البرنامج، سيتم دائمًا تنفيذ خطة المهمة التي تحتاجها تلقائيًا. بالنسبة لمبرمجي PHP العاديين، إذا لم يكونوا واثقين بما فيه الكفاية، فلا يُسمح بهذه العملية، لأن الحلقة اللانهائية يمكن أن تتسبب بسهولة في تعطل الخادم.
تشغيل المهام المجدولة
من بين البرامج العديدة التي أعرفها، مثل Discuz وEmpire CMS وما إلى ذلك، جميعها تستخدم هذه الطريقة لإكمال المهام المجدولة للنظام، مقارنةً بالطريقتين السابقتين، فهذه هي الطريقة الأكثر أمانًا والأبسط.
هناك الكثير من الاختيارات، لذلك عند تصميم برنامج ما، يجب عليك اختيار الطريقة الأنسب للبرمجة بناءً على الاحتياجات الفعلية. دعونا نقدم مقدمة باستخدام الأمثلة.
تم إنتاج المجلة الإلكترونية لـ AiLiterature.com بعد وقت قصير من إطلاق الموقع، وهي مجلة إلكترونية يتم تسليمها عبر البريد الإلكتروني. يعد إرسال العدد الأخير من المجلة الإلكترونية إلى صناديق بريد المشتركين مهمة ضخمة، فهي مجرد تجميع من الواضح أن إرسال الصفحات لا يعمل. السبب الرئيسي هو عدم وجود خادم بريد خاص حاليًا، مثل صناديق البريد التي توفرها News وTencent و163. وعلى الرغم من أنها تدعم SMTP لإرسال رسائل البريد الإلكتروني، إلا أنها لا تسمح بإرسال مجموعات كبيرة من رسائل البريد الإلكتروني بشروط محدودة. لذلك لا يمكن حلها إلا من خلال البرامج.
بادئ ذي بدء، اخترت مهمة مجدولة تم تشغيلها لمنع البرنامج الذي يرسل رسائل البريد الإلكتروني من التأثير على تجربة المستخدم في زيارة موقع الويب، وخاصة سرعة فتح صفحة موقع الويب، اخترت استخدام Ajax لتنفيذ المشغل. أضف وظيفة تشغيل إلى ملف JS العام، ويمكن للمستخدمين تشغيل مهمة إرسال البريد الإلكتروني عند زيارتهم لأي صفحة.
من أجل الحد من تكرار إرسال رسائل البريد الإلكتروني ومنع حظرها من قبل خادم البريد بسبب إرسال رسائل البريد الإلكتروني بشكل متكرر بشكل مفرط، يتم أيضًا تعيين حدود زمنية في البرنامج لإنشاء وقت انتظار عشوائيًا لحل المشكلة إن إرسال رسائل البريد الإلكتروني ليس فاصلًا زمنيًا ثابتًا في الواقع، فالفاصل الزمني في وضع التشغيل هو الوقت غير مؤكد بطبيعته، ولكن عندما يكون لدى موقع الويب عدد كبير من الزيارات، فقد تستمر مثل هذه المشكلات في الحدوث، لذا فمن الآمن إضافة الإعدادات في هذا. اعتبار.
على الرغم من التدابير المذكورة أعلاه، في التطبيقات الفعلية لا يزال يوجد أنه سيتم منع خادم البريد من إرسال رسائل البريد الإلكتروني، ولكن هذا ليس محظورًا بشكل دائم. طريقة حل هذه المشكلة هي إنشاء مصفوفة لحفظ معلمات SMTP لخدمات البريد المختلفة. عندما يتعذر على خادم بريد واحد إرسال البريد بشكل طبيعي، فإنه سينتقل تلقائيًا إلى خادم بريد آخر.
في قائمة عناوين البريد الإلكتروني التي تم جمعها، ستكون هناك بعض العناوين غير الصالحة أثناء عملية إرسال رسائل البريد الإلكتروني، إذا فشل الإرسال مرة واحدة، فانتقل إلى خادم بريد إلكتروني آخر وأرسله مرة أخرى. إذا لم ينجح أي منهما، قم بتعيين عنوان البريد الإلكتروني هذا على إذا كان غير صالح ، لن يتم إرسال المزيد من رسائل البريد الإلكتروني إلى هذا العنوان في المستقبل، وبالتالي تحسين كفاءة قائمة عناوين البريد الإلكتروني وتوفير الوقت لإرسال رسائل البريد الإلكتروني في المرة القادمة.
يقول بعض الأصدقاء إنني بخيل جدًا ولا أشارك سوى القليل جدًا من التعليمات البرمجية في هذا النوع من المدونات. في الواقع، عندما نبحث عن معلومات على الإنترنت، سنجد أن الرموز التي تشاركها العديد من مواقع الويب ليست عملية بالضرورة، وفي بعض الأحيان نكون كذلك. لقد تأخرت كثيرًا بسبب الرجوع إلى هذه الرموز، لذلك عند التلخيص، غالبًا ما أقوم بتلخيص طرق حل المشكلة وكتابة المعلمات التقنية الرئيسية حتى أتمكن من الحصول على معلومات مرجعية عند مواجهة مشكلات مماثلة في المستقبل. إذا كان لديك أي أسئلة في هذا الصدد، يمكنك الاتصال بي عبر الرسائل أو البريد الإلكتروني.
المساحة الشخصية للمؤلف Happy Boy