آیا تا به حال برایتان سؤال شده که سیستم زمانبندی وردپرس چگونه کار میکند؟ در این راهنما قصد داریم به بررسی شیوه غیرفعال کردن wp-cron و نحوه بهینهسازی آن بپردازیم.
سیستم wp-cron وردپرس ابزاری کارآمد اما نه چندان بهینه است. خوشبختانه، میتوانید با جایگزین کردن آن با یک کرون جاب سیستمی، عملکرد سرعت سایت خود را به طور چشمگیری بهبود بخشید. این تغییر نه تنها باعث اجرای دقیقتر وظایف زمانبندیشده میشود، بلکه فشار روی منابع سرور را نیز کاهش میدهد – موضوعی که برای سایتهای پرترافیک بسیار حیاتی است.
تا به حال به این اندیشیدهاید که وردپرس چگونه میتواند پستهای زمانبندی شده را دقیقاً در زمان مشخص منتشر کند؟ یا چطور وظایف دورهای مانند بررسی بهروزرسانیها را انجام میدهد؟ همه اینها به لطف سیستم دبلیو پی کرون امکانپذیر است، اما گاهی این سیستم پیشفرض کافی نیست.
در ادامه، به شما راهکاری برای غیرفعال کردن WP-Cron در وردپرس را نشان خواهیم داد و در انتها یاد میگیرید که چگونه یک کرون جاب واقعی در سرور راهاندازی میشود. همچنین، تنظیمات لازم را در کنترل پنلهای محبوب هاستینگ مانند سیپنل و دایرکت ادمین به شما نشان خواهیم داد. این تغییرات میتواند تفاوت قابل توجهی در عملکرد سایت شما ایجاد کند، به خصوص اگر سایت شما ترافیک بالایی دارد یا نیاز به اجرای منظم و دقیق وظایف زمانبندی شده دارد.
WP-Cron چیست؟
سیستم وردپرس از یک مکانیزم داخلی به نام WP-Cron بهره میبرد که مسئولیت مدیریت فعالیتهای زمانبندی شده را بر عهده دارد. گرچه این سیستم شباهتهایی به کرونهای سیستمی دارد، اما در واقع یک شبیهساز است. این ابزار داخلی که در فایل wp-cron.php پیادهسازی شده، وظایف متنوعی را به صورت خودکار مدیریت میکند، از جمله:
- زمانبندی انتشار مطالب
- کنترل وجود نسخههای جدید افزونهها و پوستهها
- مدیریت سیستم اطلاعرسانی ایمیلی
- رسیدگی به پیامهای سیستمی افزونهها
- سایر عملیات زمانبندی شده
برای درک بهتر، تصور کنید میخواهید مقالهای را برای انتشار در ساعت 9:30 صبح چهارشنبه آینده برنامهریزی کنید. دبلیو پی کرون وظیفه دارد این درخواست را در زمان مقرر اجرا نماید. با افزایش تعداد وظایف زمانبندی شده و حجم محتوای سایت، فشار بیشتری به سیستم و منابع سرور وارد میشود. واژه “کرون” از دنیای یونیکس وام گرفته شده و به معنای هر عملیات خودکاری است که در فواصل زمانی مشخص اجرا میشود.
مکانیزم کار wp-cron به این صورت است که با هر بار بازدید از هر صفحه سایت (چه در بخش عمومی و چه در پنل مدیریت)، فایل WP-Cron.php فراخوانی میشود. این فایل لیست وظایف را بررسی کرده و در صورت نیاز، آنها را اجرا میکند. نقطه ضعف اصلی این سیستم این است که در صورت عدم بازدید از سایت، هیچ عملیات زمانبندی شدهای اجرا نخواهد شد. به بیان سادهتر، وردپرس فقط زمانی وظایف زمانبندی شده را بررسی میکند که کسی از سایت بازدید کند. این رویکرد برای سایتهای کمترافیک مناسب است، اما در سایتهای پربازدید میتواند باعث کندی قابل توجه شود، زیرا سیستم مجبور است مرتباً لیست وظایف را اسکن کند.
برای روشنتر شدن موضوع، فرض کنید مطلبی را برای انتشار در ساعت 9:30 صبح چهارشنبه زمانبندی کردهاید. اگر در آن ساعت هیچ بازدیدکنندهای نداشته باشید و اولین بازدید در ساعت 11:30 اتفاق بیفتد، مطلب شما با دو ساعت تاخیر منتشر خواهد شد. البته تاریخ انتشار همان 9:30 ثبت میشود، اما محتوا عملا تا 11:30 برای بازدیدکنندگان قابل مشاهده نخواهد بود.
آشنایی با نحوه عملکرد WP-Cron در وردپرس
سیستم زمانبندی وردپرس (WP-CRON) با هر بار بارگذاری صفحه، فهرست فعالیتهای برنامهریزی شده را بازبینی میکند. این روش برای سایتهایی با ترافیک معمولی مناسب است، اما در دو موقعیت خاص میتواند مشکلساز شود:
سایتهای پرترافیک: در صورتی که سایت شما بازدیدکنندگان زیادی داشته باشد، سیستم مجبور است پیوسته برنامه زمانبندی را بررسی کند که این امر به افزایش بار سرور و افت کارایی منجر میشود. تصور کنید 50 کاربر همزمان از سایت شما بازدید میکنند؛ در این حالت دبلیو پی کرون نیز ممکن است 50 بار به طور همزمان اجرا شود. به عنوان نمونه، وقتی گروهی از بازدیدکنندگان روی یک پیوند مشترک کلیک میکنند، اجرای همزمان WP-Cron میتواند سرعت بارگذاری صفحه را کاهش داده و عملکرد کلی سایت را تحت تاثیر قرار دهد.
نکته قابل توجه در مورد wp-corn
نکته قابل توجه اینجاست که خزندههای موتورهای جستجو نیز هنگام بررسی محتوای سایت شما، به عنوان بازدیدکننده محسوب میشوند. این یعنی WP-Cron میتواند توسط این روباتها نیز فعال شده و بار اضافی به سرور تحمیل کند.
گرچه وردپرس تلاش میکند با محدود کردن اجرای دبلیو پی کرون به یک بار در هر 60 ثانیه این مشکل را کنترل کند، اما به دلایل فنی مختلف، مانند درخواستهای همزمان، همچنان احتمال کاهش کارایی سایت وجود دارد.
سایتهای کمترافیک: از سوی دیگر، در سایتهایی با بازدید کم یا بدون بازدید، بررسی وظایف زمانبندی شده به اندازه کافی سریع انجام نمیشود و ممکن است عملیات مهمی مانند پشتیبانگیری خودکار یا انتشار مطالب زمانبندی شده با تاخیر مواجه شود. چون WP-Cron به تعامل کاربران با سایت وابسته است، در صورت عدم بازدید در زمان مقرر، وظایف برنامهریزی شده اجرا نخواهند شد. این تأخیر در پنل مدیریت قابل مشاهده است و میتواند برنامه انتشار محتوای شما را مختل کند.
راهکار بهینه برای همه سایتها، غیرفعال کردن WP-Cron داخلی و استفاده از کرون جاب سیستمی است. در این حالت، به جای اجرای مکرر با هر بازدید، وظایف در فواصل زمانی مشخص اجرا میشوند. با کرون جاب واقعی میتوانید زمانبندی دقیقی برای اجرای وظایف تعیین کنید، صرفنظر از وجود یا عدم وجود بازدیدکننده.
این بهینهسازی شامل دو مرحله است:
- غیرفعالسازی WP-CRON داخلی
باید قابلیت پیشفرض دبلیو پی کرون را غیرفعال کنید تا از اجرای مداوم آن در هر بازدید جلوگیری شود. این کار با افزودن یک دستور ساده به فایل wp-config.php امکانپذیر است.
- پیادهسازی کرون جاب سیستمی
در این مرحله باید یک کرون جاب اختصاصی تنظیم کنید که wp-cron.php را در زمانهای مشخص فراخوانی کند. این روش اجرای منظم وظایف را بدون وابستگی به ترافیک سایت تضمین میکند.
نحوه غیرفعال کردن wp-cron (سیستم زمانبندی خودکار وردپرس)
برای غیرفعال کردن سیستم wp-cron.php در تنظیمات اصلی وردپرس، مراحل زیر را دنبال کنید:
۱- ابتدا به بخش مدیریت فایلهای هاستینگ خود دسترسی پیدا کنید. در پوشه اصلی نصب وردپرس که معمولاً public_html نام دارد (جایی که پوشههایی مانند wp-admin و wp-content قرار دارند)، فایل پیکربندی wp-config.php را پیدا کرده و آن را برای ویرایش باز کنید.
نکته ایمنی مهم: از آنجایی که wp-config.php فایل حساسی در پیکربندی وردپرس به شمار میرود، قویاً پیشنهاد میشود پیش از اعمال هرگونه تغییر، یک نسخه پشتیبان از کل سایت یا حداقل از خود این فایل تهیه کنید. این احتیاط به شما امکان میدهد در صورت بروز هر مشکلی، به سادگی به تنظیمات قبلی بازگردید.
۲- در گام بعدی، باید دستور مربوطه را به فایل اضافه کنید. محل قرارگیری این دستور باید پیش از عبارت “/* That’s all, stop editing! Happy publishing. */” باشد.
۳- پس از قرار دادن کد، تغییرات را ذخیره کنید. با این اقدام، سیستم زمانبندی وردپرس دیگر با هر بازدید فعال نمیشود و تنها زمانی اجرا میشود که به طور مستقیم از طریق فایل wp-cron.php فراخوانی شود. این تغییر باعث میشود سیستم زمانبندی وردپرس دیگر به صورت خودکار با هر بار بازدید از سایت اجرا نشود.
یادآوری: این فرآیند در تمامی کنترل پنلهای هاستینگ از جمله دایرکت ادمین و پلسک به همین شکل قابل اجراست و تفاوتی در روند کار وجود ندارد.
راهنمای نصب و پیکربندی زمانبندی سیستمی در سیپنل
۱- به پنل مدیریتی سیپنل خود وارد شده و در بخش پیشرفته (Advanced)، گزینه مدیریت زمانبندی (Cron Jobs) را جستجو و انتخاب نمایید.
۲- در صفحه مدیریت زمانبند، قسمت “افزودن زمانبند جدید” (Add New Cron Job) را پیدا کنید. در منوی کشویی تنظیمات عمومی (Common Settings)، گزینه اجرای دقیقهای (Once Per Minute) را که با الگوی (* * * * *) نمایش داده میشود انتخاب کنید. سپس در بخش دستورات (Command)، کد مربوطه را وارد کرده و نشانی سایت خود را جایگزین yourdomain.com نمایید. در نهایت با کلیک روی دکمه “افزودن زمانبند جدید” (Add New Cron Job)، تنظیمات را نهایی کنید.
به زبان سادهتر، ما به سیستم دستور میدهیم که هر ۶۰ ثانیه یکبار، فایل زمانبندی وردپرس را اجرا کند.
۳- پس از کلیک روی دکمه ایجاد و مشاهده پیام موفقیتآمیز “زمانبند با موفقیت اضافه شد” (cPanel successfully added the cron job)، فرآیند تکمیل شده است. اکنون میتوانید در بخش “زمانبندهای فعال” (Current Cron Jobs) زمانبند جدید خود را مشاهده کنید. از این پس، سایت شما به صورت خودکار و منظم، تمام وظایف زمانبندی شده را اجرا خواهد کرد.
راهاندازی زمانبند در دایرکت ادمین
۱. به پنل مدیریتی دایرکت ادمین وارد شده و در قسمت ویژگیهای پیشرفته (Advanced Features)، بخش زمانبندها (Cron Jobs) را پیدا کنید.
۲. در صفحه باز شده، گزینه “ایجاد زمانبند جدید” (Create Cron Job) را انتخاب نمایید.
۳. در این مرحله، دقیقا مشابه روش توضیح داده شده برای سیپنل عمل کنید. پس از وارد کردن تنظیمات و دستورات مشابه، روی دکمه “ایجاد” (Create) کلیک کنید تا زمانبند شما فعال شود.
با انجام این مراحل، موفق شدیم سیستم زمانبندی پیشفرض وردپرس را غیرفعال کرده و یک زمانبند سیستمی کارآمد را جایگزین آن کنیم. این تغییر باعث بهبود چشمگیر در عملکرد و سرعت سایت شما خواهد شد.
در صورت وجود هرگونه سوال یا نیاز به راهنمایی بیشتر در مورد غیرفعالسازی زمانبند پیشفرض وردپرس یا تنظیم زمانبند سیستمی، میتوانید با تیم پشتیبانی فنی در ارتباط باشید تا در اسرع وقت مشکلات فنی سایت شما را برطرف سازند.