النهاردة هتكلم عن الـCron … وخد بالك الكلام اللي هقوله دا محدش هيقولهولك ابدا !!!
ايه هو الـCron؟ والووردبريس بيشغله ازاي؟ والمفروض اشغله ولا اوقفه؟
كل دي اسئلة هنجاوب عليها ان شاء الله..
باختصار شديد الـCron دا هو المسؤول عن تنفيذ بعض المهام في لوحة تحكم الووردبريس بناءا على جدول زمني.. يعني ايه يا صاحبي الكلام دا؟
يعني بإختصار فيه بعض الـTasks التلقائية اللي بتحصل عندك في الموقع بتحصل بدون تدخل منك.. بتحصل بشكل تلقائي.. بتحصل منغير ما انت تقولها ابدئي تنفيذ.. طيب بتحصل بناءا على اي اساس؟ الوقت.. خط زمني متكرر محطوط عليه كل المهام او الـTasks دي.. كل يومين مهام معينة بتتنفذ وكل اسبوع مهام تانية بتتنفذ وكل شهر مهام تانية بتتنفذ -الفترات دي مجرد مثال-…
المهام دي ممكن تكون update checking -سواء على اضافة او قالب او الووردبريس نفسه- ، ممكن تكون database cleaning ، ممكن تكون WooCommerce data updates ، ممكن تكون sync ما بين حاجتين.. ممكن تكون schedule posts مثلا ، او ارسال ايميلات تلقائية للقائمة البريدية اللي عندك.. وهاكذا..
طيب تمام حلو اوي يبقى احنا محتاجين نشغل الموضوع دا على طول عشان طبعا طبعا مفيد ومهم جدا لاي موقع.. هقولك بالظبط بس للأسف الووردبريس عنده شوية مشاكل في الموضوع دا، وعشان اقولك ليه خليني الاول اقولك ازاي اصلا الـCron بيشتغل جوة الووردبريس..
الووردبريس عنده النظام الخاص بالـCron واسمه WP Cron والملف المسؤول عن القصة دي اسمه wp-cron.php موجود في فولدر الـroot.. الووردبريس بيشغل الـCron بتاعه في حاله ان اي زائر فتح اي صفحة في الموقع.. فيما عدا ذلك الـCron مش هيشتغل… يعني الزائر اول حاجة بيفتح الموقع بعدها الملف المسؤول عن الـCron يشتغل وبيخش على جدول wp-options في قاعدة البيانات وينفذ كل المهام حسب الجدولة بتاعتها.. هتقولي هو مش انت قولت ان الـCron دا شغال بناءا على الوقت بس؟ هقولك ايوة هو شغال بناءا على الوقت فعلا بس الووردبريس اصلا عشان يعمل Check على الـSchedule Jobs او الـScheduled Tasks لازم يعمل الـCheck دا اما زائر يخش موقعك.. متخيل الكوميديا؟
وخليني اقولك برضو ان الموضوع ممكن يكون شغال مع أغلب المواقع لان طبيعي ييجي زوار لاي موقع بس تخيل الووردبريس يعمل الموضوع بناءا على حاجة زي كدا انا شايف ان دا ضعف في النظام.. ودا على عكس اللي بيحصل في الـCron الخاص بالسيرفر اللي هو اسمه Cron Jobs.. مش هكلمك عنه دلوقتي خلينا ماشيين خطوة خطوة..
المهم نرجع تاني لموضوعنا اللي هو الووردبريس.. تعالى نعد المصايب بتاعت الـCron مع بعض.. لو الموقع عليه زوار قليلة.. تخيل انت عندك Task المفروض يتنفذ الساعة 11:00PM وانت من الساعة 10:00PM للساعة 12:00PM مفيش ولا زائر دخل عندك.. كدا نقول مع السلامة للـTask دا لانه مش هيشتغل لان ملف الـwp-cron.php طبعا مش هيشتغل!! وفي بعض الحالات هيشتغل اول ما زائر يخش.. واحيانا مش هيشتغل خالص وهيحصل مشاكل مع تراكم الـTasks اللي متنفذتش ومحطوطة في الطابور عشان تتنفذ.. طب تخيل ان عندك زوار كتير.. متخيل كل مرة زائر يخش عندك الملف يشتغل ويروح يعمل Check على الجدول في قاعدة البيانات.. متخيل العملية كل مرة بتستهلك من السيرفر اد ايه؟ متخيل لو عندك عدد ضخم من الزوار متخيل الـWP Cron هيستنذف موارد السيرفر بتاعك ازاي؟ متخيل هتحتاج سيرفر عامل ازاي بمواصفات عاملة ازاي بتكلفة عاملة ازاي؟ خوفتك صح؟ طب تعالى اخوفك اكتر.. تخيل حصل عليك DDoS Attack… انا مش هكمل الجملة وهسيبك تسرح بخيالك..
الـCron سلاح ذو حدين.. طب ايه مفيش حل للموضوع دا؟ لو شغلته بشكل افتراضي مع الووردبريس هتواجه المشاكل دي للأسف.. بس انا يا صاحبي مش هسيبك.. طب والله ما هسيبك
فاكر الـCron Job اللي قولتلك عليه فوق وقولت انه بيشتغل على السيرفر؟ هو دا الحل يا صديقي وتعالى اقولك بقى احنا هنعمل ايه.. الـCron Job دا ملوش علاقة بالـWP Cron بتاع الووردبريس دا شغال عادي بدون اي Event Trigger يعني طالما السيرفر شغال فهو مستني الوظائف بجدولها الزمني الطبيعي.. ودا بيبقى موجود في الـcPanel باسمه اللي شرحناه.. وعلى فكرة تقدر برضو تستخدم Cron Job طرف تالت يعني شركة تانية ملهاش علاقة بالسيرفر متخصصة في دا بتربطهم ببعض بس دا مش موضوعنا دلوقتي.. المهم انك بتقوله بص يا Cron Job انت هتعمل Scheduled Task على الموقع بتاعي.. اللي هو ايه بقى؟ اللي هو تشغل ملف الـwp-cron.php اللي هو بتاع الـWP Cron وبكدا تبقى شغلت الـCron Job بنجاح.. هتقولي هو انا ناقص اشغل Cron فوق الـCron اللي عندي؟ هقولك يا صديقي ما احنا هنعطل الـWP Cron وهنشغله بمزاجنا مع الـCron Job صحصح معايا كدا..
هتفتح الـFile Manager
هتعدل على ملف wp-config.php
هتكتب الكود دا:
افتح اخر لينك سايبهولك في المصادر [3] عشان فيه سكرينات كتير مش هقدر احطها هنا..
يا رب يكون المقال عجبك يا رب
بالتوفيق يا صديقي 