CRON jobها به منظور برنامه‌ریزی فرآیندها در زمان‌ها، تاریخ‌ها یا فواصل زمانی ثابت در سایت وردپرس شما استفاده می‌شود. نمونه‌هایی از یک cron job وردپرس شامل برنامه‌ریزی یک پست برای انتشار، بررسی به‌روزرسانی‌ها، یا یک افزونه پشتیبان‌گیری در یک برنامه از پیش تعریف‌شده باشد.

 

در وردپرس، این کار توسط WP-Cron مدیریت می‌شود که برای شبیه‌سازی یک system cron استفاده می‌شود. با این حال، بسته به میزان ترافیک سایت شما، استفاده از cron handler داخلی می‌تواند بر زمان بارگذاری صفحه شما تأثیر بگذارد. به همین دلیل در این مقاله، نحوه غیرفعال سازی WP-Cron (wp-cron.php) و در عوض استفاده از یک سیستم cron به منظور افزایش سرعت عملکرد شرح داده شده است.

 

این مطلب نیز ممکن است برای شما مفید باشد: اضافه کردن cron job در سیستم عامل لینوکس/یونیکس

 

مشکلات عملکرد با WP-Cron

ما در جی سرور با تعداد زیادی سایت پربازدید و پرتقاضا سروکار داریم. به همین دلیل، شاهد مشکلات عملکردی زیادی با کنترلر Cron داخلی وردپرس (WP-Cron) هستیم. اول از همه، درک این نکته مهم است که WP-Cron یک cron job واقعی نیست، بلکه چیزی است که وردپرس با تقلید از کاری که یک cron سیستم انجام می‌دهد، ایجاد کرده است.

WP-Cron به طور مداوم اجرا نمی‌شود. به‌طور پیش‌فرض، wp-cron.php در هر بارگذاری صفحه فعال می‌شود که در سایت‌های پربازدید می‌تواند مشکلاتی را ایجاد کند. اگر سایتی به اندازه کافی PHP worker نداشته باشد، زمانی که درخواستی وارد می‌شود، وردپرس cron را ایجاد می‌کند؛ اما cron باید منتظر worker باشد و در آن مدّت کاری انجام نمی‌دهد.

سناریوی معکوس نیز صادق است. بدین معنی که اگر سایتی ترافیک زیادی نداشته باشد، به دلیل اینکه هیچ‌کس صفحه‌ای را بارگذاری نکرده است، برنامه‌ها ممکن است از دست بروند.

یک رویکرد بهتر این است که WP-Cron را غیرفعال کرده و به جای آن از system cron استفاده نمایید. system cron بر اساس یک برنامه از پیش تعریف شده اجرا می‌شود و حتی استفاده از آن در کتابچه راهنمای رسمی پلاگین توصیه شده است.

 

غیرفعال کردن WP-Cron

به منظور غیرفعال کردن WP-Cron، موارد زیر را به فایل wp-config.php خود، درست قبل از خطی که می‌گوید “That’s all, stop editing! Happy blogging.”، اضافه کنید.

توجه: این کار،  WP-Cron را برای اجرا در زمان بارگذاری صفحه غیرفعال می‌کند، نه زمانی که مستقیماً از طریق wp-cron.php آن را فراخوانی می‌کنید.

define('DISABLE_WP_CRON', true);

 

نحوه برنامه ریزی system cron

اکنون باید wp-cron.php را از سرور خود زمان بندی نمایید. در ادامه به نحوه انجام این کار پرداخته شده است.

اگر سایت شما چند سایتی است، یکسری مراحل راه‌اندازی اضافی وجود دارد که شما باید انجام دهید تا cron jobها برای سایت‌های فرعی شما اجرا شوند. دقت کنید که در این مقاله، به آن‌ها پرداخته نشده است.

 

این مطلب نیز ممکن است برای شما مفید باشد: راه اندازی Cronjob در دایرکت ادمین

 

ایجاد Cron Job در سی پنل

اگر از یک هاست cPanel استفاده می‌کنید، شما می‌توانید یک cron سیستم را از کنترل پنل آن‌ها نیز ایجاد نمایید.

توجه: ابتدا مطمئن شوید که WP-Cron پیش فرض بالا را غیرفعال کرده‌اید، سپس مراحل زیر را دنبال کنید.

 

مرحله 1

وارد سی پنل شوید، در قسمت Advanced بر روی Cron Jobs کلیک نمایید.

 

مرحله 2

در بخش Add New Cron Job، شما می‌توانید از بین تعدادی برنامه از پیش تعریف شده مختلف، یک برنامه (به عنوان مثال دو بار در ساعت یا یک بار در هفته) را انتخاب کنید. ارائه دهنده هاست شما به احتمال زیاد محدودیتی در تعداد دفعات اجازه اجرای cron jobها دارد. دو بار در ساعت، یک تنظیم معمول برای هاست‌های اشتراکی است.

 

مرحله 3

دستور زیر را اضافه کنید. نام دامنه خود را جایگزین https://domain.com نمایید. دقت کنید که این دستور ممکن است بر اساس نحوه پیکربندی هاست شما کمی متفاوت باشد.

سپس بر روی “Add New Cron Job” کلیک نمایید.

wget -q -O - https://domain.com/wp-cron.php?doing_wp_cron >/dev/null 2>&1

 

بخش >/dev/null 2>&1 دستور بالا، اعلان‌های ایمیل را غیرفعال می‌کند.

 

تنظیم Crons با راه حل شخص ثالث

اگر با راه‌اندازی cron job در سرور خود راحت نیستید؛ یا ارائه‌دهنده میزبانی شما دسترسی را فراهم نمی‌کند، شما می‌توانید از یک موجودیت شخص ثالث مانند EasyCron نیز استفاده نمایید.

 

 

 

منبع:

kinsta