کران جاب چیست؟ آموزش کامل Cron Job در وردپرس، cPanel و DirectAdmin با ۱۵ مثال

کران جاب چیست؟ کران جاب یا Cron Job قابلیتی در سرورهای لینوکسی است که به شما اجازه می‌دهد یک دستور، اسکریپت یا کار مشخص را در زمان‌های از پیش تعیین‌شده به‌صورت خودکار اجرا کنید. با کران جاب می‌توان کارهایی مانند تهیه نسخه پشتیبان، ارسال ایمیل، پاک‌سازی فایل‌های موقت، اجرای اسکریپت PHP، همگام‌سازی اطلاعات، انتشار نوشته‌های زمان‌بندی‌شده وردپرس و پردازش وظایف ووکامرس را بدون دخالت دستی انجام داد.

برای استفاده از کران جاب لازم نیست مدیر حرفه‌ای سرور باشید. کنترل‌پنل‌هایی مانند cPanel و DirectAdmin یک رابط گرافیکی در اختیار شما قرار می‌دهند تا زمان اجرا و دستور موردنظر را مشخص کنید. بااین‌حال، یک تنظیم اشتباه می‌تواند باعث اجرای بیش‌ازحد یک وظیفه، افزایش مصرف منابع، ارسال ایمیل‌های تکراری یا حتی کندشدن سایت شود. به همین دلیل در این راهنما تمام مراحل با زبان ساده و همراه با نکات امنیتی توضیح داده شده است.

پاسخ سریع: کران جاب مانند یک ساعت زنگ‌دار برای سرور است. شما مشخص می‌کنید چه کاری، در چه ساعتی و با چه فاصله زمانی اجرا شود؛ سپس سرور آن کار را به‌صورت خودکار انجام می‌دهد.

کران جاب چیست و چگونه کار می‌کند؟

Cron یک زمان‌بند وظایف در سیستم‌عامل‌های شبه‌یونیکس مانند لینوکس است. بیشتر هاست‌های وب نیز روی لینوکس اجرا می‌شوند؛ بنابراین امکان استفاده از Cron Job در بسیاری از سرویس‌های میزبانی وجود دارد. هر وظیفه‌ای که در این سیستم تعریف می‌شود یک Cron Job نام دارد.

هر کران جاب از دو بخش اصلی تشکیل می‌شود:

  1. زمان اجرا: مشخص می‌کند وظیفه در چه دقیقه، ساعت، روز، ماه یا روزی از هفته اجرا شود.
  2. دستور اجرا: مشخص می‌کند سرور دقیقاً چه فرمان، فایل یا اسکریپتی را اجرا کند.

برای نمونه، می‌توان از سرور خواست هر شب ساعت ۲ بامداد یک اسکریپت تهیه نسخه پشتیبان را اجرا کند. می‌توان یک فایل PHP را هر ۱۰ دقیقه فراخوانی کرد یا در پایان هر هفته یک گزارش را تولید و ارسال کرد.

کران جاب پس از ذخیره‌شدن، به کاربر واردشده در کنترل‌پنل وابسته است. در هاست اشتراکی معمولاً دستورات با سطح دسترسی همان حساب اجرا می‌شوند و دسترسی مدیریتی root ندارند. این محدودیت از نظر امنیتی مطلوب است و از دسترسی یک سایت به فایل‌های حساب‌های دیگر جلوگیری می‌کند.

تفاوت Cron، Cron Job و Crontab چیست؟

  • Cron: سرویس یا زمان‌بندی است که وظایف را بررسی و اجرا می‌کند.
  • Cron Job: یک وظیفه مشخص مانند اجرای یک فایل PHP در ساعت معین است.
  • Crontab: فهرستی است که زمان‌بندی‌ها و دستورات Cron در آن ذخیره می‌شوند.

در cPanel و DirectAdmin معمولاً لازم نیست فایل Crontab را مستقیماً ویرایش کنید. کنترل‌پنل اطلاعات فرم را دریافت می‌کند و ورودی مناسب را در Crontab حساب می‌سازد.

یک مثال ساده برای درک کران جاب

فرض کنید مدیر یک فروشگاه اینترنتی هستید و هر شب باید محصولات ناموجود را بررسی کنید. بدون کران جاب باید هر شب وارد سایت شوید، گزارش بگیرید و عملیات لازم را انجام دهید. با کران جاب می‌توان اسکریپتی تعریف کرد که رأس ساعت مشخص اجرا شود، محصولات را بررسی کند و نتیجه را در فایل گزارش ذخیره کند.

کران جاب خودش منطق کسب‌وکار را ایجاد نمی‌کند. این قابلیت فقط دستور تعیین‌شده را در زمان مناسب اجرا می‌کند. بنابراین فایل PHP، فرمان WP-CLI یا اسکریپتی که فراخوانی می‌شود باید از قبل به‌درستی نوشته و آزمایش شده باشد.

کران جاب به چه دردی می‌خورد؟

مهم‌ترین کاربرد Cron Job حذف کارهای تکراری و کاهش وابستگی به اجرای دستی است. هر کاری که دارای زمان‌بندی مشخص یا نیازمند بررسی دوره‌ای باشد، ممکن است گزینه مناسبی برای کران جاب باشد.

۱. تهیه نسخه پشتیبان خودکار

می‌توان یک اسکریپت پشتیبان‌گیری را هر شب یا هر هفته اجرا کرد تا از پایگاه داده، فایل‌های سایت یا پوشه‌های مشخص نسخه پشتیبان تهیه شود. البته بهتر است نسخه‌های پشتیبان فقط روی همان هاست باقی نمانند و به فضای دیگری نیز منتقل شوند.

۲. اجرای اسکریپت‌های PHP

اگر یک سیستم اختصاصی دارید، ممکن است لازم باشد فایل PHP مشخصی در فاصله‌های زمانی منظم اجرا شود. این فایل می‌تواند وضعیت سفارش‌ها را بررسی کند، گزارش بسازد، داده‌ها را پاک‌سازی کند یا اطلاعات جدید را از یک API دریافت کند.

۳. ارسال ایمیل و گزارش‌های دوره‌ای

کران جاب می‌تواند وظیفه تولید گزارش روزانه، هفتگی یا ماهانه را آغاز کند. برای مثال، سامانه مدیریت مشتریان می‌تواند هر صبح خلاصه درخواست‌های جدید را برای مدیر ارسال کند.

۴. همگام‌سازی اطلاعات با API

بعضی سایت‌ها اطلاعات قیمت، موجودی، وضعیت سفارش یا داده‌های کاربران را از یک سامانه خارجی دریافت می‌کنند. اجرای این فرایند در هر بار بازشدن صفحه منطقی نیست. کران جاب می‌تواند همگام‌سازی را هر ۱۵ دقیقه یا هر ساعت انجام دهد.

۵. پاک‌سازی فایل‌ها و داده‌های موقت

فایل‌های موقت، گزارش‌های قدیمی، نشست‌های منقضی‌شده و داده‌های بدون استفاده ممکن است به‌مرور فضای هاست یا پایگاه داده را اشغال کنند. یک وظیفه زمان‌بندی‌شده می‌تواند این داده‌ها را بر اساس قواعد مشخص پاک‌سازی کند.

۶. اجرای فرایندهای وردپرس و ووکامرس

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

۷. بررسی وضعیت سرویس‌ها

یک اسکریپت نظارتی می‌تواند در فاصله‌های مشخص وضعیت سایت، گواهی SSL، پاسخ API یا اتصال به سرویس‌های مهم را بررسی کند و در صورت بروز مشکل هشدار بفرستد.

۸. به‌روزرسانی کش و داده‌های محاسباتی

در برخی پروژه‌ها اطلاعات سنگین بهتر است یک بار محاسبه و سپس ذخیره شوند. کران جاب می‌تواند این اطلاعات را شبانه یا ساعتی بازسازی کند تا کاربران هنگام بازدید منتظر محاسبات طولانی نمانند.

۹. مدیریت تاریخ انقضا

سیستم‌های عضویت، رزرو، اشتراک، کوپن، تخفیف یا فایل‌های دارای اعتبار زمانی به بررسی منظم نیاز دارند. کران جاب می‌تواند موارد منقضی‌شده را شناسایی و وضعیت آن‌ها را تغییر دهد.

۱۰. واردکردن و خروجی‌گرفتن دوره‌ای اطلاعات

فروشگاه‌ها و سامانه‌های سازمانی ممکن است هر شب فایل CSV یا XML دریافت کنند. یک وظیفه زمان‌بندی‌شده می‌تواند فایل جدید را بررسی و اطلاعات آن را وارد پایگاه داده کند.

تفاوت کران جاب با اجرای دستی، وب‌هوک و صف پردازش چیست؟

روش نحوه شروع کاربرد مناسب محدودیت اصلی
اجرای دستی توسط مدیر یا کاربر کارهای نادر و نیازمند بررسی انسانی وابستگی کامل به حضور انسان
Cron Job در زمان یا فاصله مشخص کارهای تکرارشونده و دوره‌ای برای واکنش آنی به رویداد مناسب نیست
Webhook پس از وقوع یک رویداد اعلام فوری پرداخت، سفارش یا تغییر وضعیت به ارسال درست رویداد از سرویس مبدا وابسته است
Job Queue پس از قرارگرفتن کار در صف پردازش حجم زیاد وظایف پس‌زمینه به زیرساخت و مدیریت صف نیاز دارد

کران جاب و صف پردازش می‌توانند در کنار هم استفاده شوند. برای مثال، Cron هر دقیقه صف را بررسی می‌کند و پردازشگر تعدادی از کارهای آماده را انجام می‌دهد. Action Scheduler در وردپرس نمونه‌ای از یک صف وظایف پس‌زمینه است که معمولاً با WP-Cron فعال می‌شود.

ساختار زمان‌بندی Cron Job چگونه است؟

یک زمان‌بندی معمول Cron پنج بخش زمانی و یک دستور اجرایی دارد:

دقیقه ساعت روزِ ماه ماه روزِ هفته دستور

نمای کلی آن به شکل زیر است:

* * * * * command
فیلد محدوده معمول توضیح
Minute ۰ تا ۵۹ دقیقه اجرای وظیفه
Hour ۰ تا ۲۳ ساعت اجرای وظیفه با قالب ۲۴ ساعته
Day ۱ تا ۳۱ روز ماه
Month ۱ تا ۱۲ ماه سال
Weekday ۰ تا ۷ روز هفته؛ معمولاً ۰ یا ۷ یکشنبه است

معنی علامت‌های پرکاربرد در دستور Cron

علامت معنی مثال
* همه مقادیر ممکن * * * * * یعنی هر دقیقه
, چند مقدار جداگانه 0 9,18 * * * یعنی ساعت ۹ و ۱۸
- یک بازه 0 8 * * 1-5 یعنی دوشنبه تا جمعه
/ اجرای مرحله‌ای */10 * * * * یعنی هر ۱۰ دقیقه
کران جاب چیست و چگونه در وردپرس و کنترل پنل تنظیم می‌شود
کران جاب چیست و چگونه در وردپرس و کنترل پنل تنظیم می‌شود

چرا نباید بدون بررسی از پنج ستاره استفاده کنیم؟

عبارت * * * * * وظیفه را هر دقیقه اجرا می‌کند. اگر اسکریپت شما ۹۰ ثانیه زمان ببرد، اجرای بعدی پیش از پایان اجرای قبلی آغاز می‌شود. این هم‌پوشانی می‌تواند مصرف CPU، حافظه و تعداد پردازش‌ها را افزایش دهد.

برای کارهای سنگین باید فاصله زمانی کافی در نظر گرفت. بهتر است ابتدا زمان واقعی اجرای اسکریپت را اندازه‌گیری کنید و سپس فاصله‌ای بیشتر از زمان اجرای معمول انتخاب کنید.

۱۵ مثال کاربردی برای زمان‌بندی کران جاب

زمان‌بندی زمان اجرا
*/5 * * * * هر ۵ دقیقه
*/10 * * * * هر ۱۰ دقیقه
*/15 * * * * هر ۱۵ دقیقه
0 * * * * ابتدای هر ساعت
30 * * * * دقیقه ۳۰ هر ساعت
0 */6 * * * هر ۶ ساعت در ساعت‌های ۰، ۶، ۱۲ و ۱۸
0 2 * * * هر روز ساعت ۲ بامداد
30 6 * * * هر روز ساعت ۶:۳۰ صبح
0 9,18 * * * هر روز ساعت ۹ و ۱۸
0 3 * * 0 هر یکشنبه ساعت ۳ بامداد
0 8 * * 1-5 روزهای کاری هفته ساعت ۸ صبح
0 1 1 * * روز اول هر ماه ساعت ۱ بامداد
0 4 15 * * روز پانزدهم هر ماه ساعت ۴ صبح
0 0 1 1 * اول ژانویه هر سال در نیمه‌شب
*/10 8-20 * * * بین ساعت ۸ تا ۲۰، هر ۱۰ دقیقه

زمان اجرای Cron معمولاً بر اساس منطقه زمانی سرور محاسبه می‌شود. منطقه زمانی وردپرس، مرورگر و سرور ممکن است با یکدیگر متفاوت باشند. قبل از زمان‌بندی یک عملیات حساس، ساعت سرور را بررسی کنید.

آموزش کران جاب در سی پنل برای مبتدیان

رابط Cron Jobs در cPanel معمولاً در بخش Advanced قرار دارد. شرکت هاستینگ می‌تواند این قابلیت را برای بعضی بسته‌ها غیرفعال کند؛ بنابراین اگر گزینه Cron Jobs را نمی‌بینید، موضوع را از پشتیبانی هاست پیگیری کنید.

ساخت کران جاب در cPanel مرحله‌به‌مرحله

  1. وارد حساب cPanel هاست شوید.
  2. در بخش Advanced روی گزینه Cron Jobs کلیک کنید.
  3. در صورت نیاز، ایمیل دریافت گزارش‌های Cron را در قسمت Cron Email وارد کنید.
  4. در بخش Add New Cron Job یک زمان‌بندی آماده را از Common Settings انتخاب کنید یا فیلدها را دستی تنظیم کنید.
  5. در کادر Command فرمان موردنظر را وارد کنید.
  6. روی دکمه Add New Cron Job کلیک کنید.
  7. وظیفه ساخته‌شده را در جدول Current Cron Jobs بررسی کنید.

آموزش کران جاب در سی پنل با یک فایل PHP

برای اجرای مستقیم یک فایل PHP باید مسیر PHP CLI و مسیر کامل فایل را وارد کنید. ساختار رایج فرمان به شکل زیر است:

/usr/local/bin/php -q /home/ACCOUNT/public_html/cron-tasks.php

در این فرمان، ACCOUNT باید با نام کاربری واقعی هاست جایگزین شود. مسیر PHP نیز در همه سرورها یکسان نیست. در بعضی هاست‌ها ممکن است PHP در مسیرهایی مانند /usr/bin/php یا مسیر اختصاصی نسخه PHP قرار داشته باشد.

برای پیداکردن مسیر درست PHP می‌توانید از پشتیبانی هاست سؤال کنید یا در صورت داشتن SSH فرمان زیر را اجرا کنید:

which php

اجرای یک URL با wget در سی پنل

اگر اسکریپت از طریق وب قابل فراخوانی باشد، می‌توان از wget استفاده کرد:

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

در این نمونه دامنه تابان استودیو استفاده شده است. مدیر هر سایت باید آدرس را با دامنه واقعی همان سایت جایگزین کند.

اجرای یک URL با curl در سی پنل

curl -fsS "https://tabanglobal.com/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

گزینه -f باعث می‌شود curl در پاسخ‌های ناموفق HTTP خطا برگرداند، -s خروجی اضافی را کاهش می‌دهد و -S نمایش خطاهای مهم را حفظ می‌کند.

تنظیم ایمیل گزارش Cron در cPanel

cPanel می‌تواند خروجی وظایف را به ایمیل مشخص‌شده ارسال کند. این قابلیت در مرحله آزمایش بسیار مفید است، زیرا خطاهای PHP یا پیام‌های اسکریپت را مشاهده می‌کنید.

پس از اطمینان از عملکرد صحیح وظیفه، می‌توان خروجی را به /dev/null هدایت کرد:

/usr/local/bin/php -q /home/ACCOUNT/public_html/cron-tasks.php >/dev/null 2>&1

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

ذخیره خروجی Cron در فایل گزارش

به‌جای حذف خروجی، می‌توانید آن را در فایل ذخیره کنید:

/usr/local/bin/php -q /home/ACCOUNT/public_html/cron-tasks.php >> /home/ACCOUNT/cron-tasks.log 2>&1

علامت >> خروجی جدید را به انتهای فایل اضافه می‌کند. فایل گزارش باید به‌صورت دوره‌ای بررسی و پاک‌سازی شود تا حجم آن بدون محدودیت افزایش پیدا نکند.

آموزش کران جاب در دایرکت ادمین برای مبتدیان

در پوسته Evolution دایرکت ادمین، مدیریت Cron Job معمولاً از مسیر User Level → Advanced Features → Cron Jobs انجام می‌شود. نام یا محل دقیق گزینه‌ها ممکن است با توجه به پوسته و تنظیمات شرکت هاستینگ کمی متفاوت باشد.

ساخت کران جاب در DirectAdmin مرحله‌به‌مرحله

  1. وارد DirectAdmin شوید.
  2. سطح دسترسی را روی User Level قرار دهید.
  3. از بخش Advanced Features وارد Cron Jobs شوید.
  4. روی Create Cron Job کلیک کنید.
  5. Minute، Hour، Day of Month، Month و Day of Week را تنظیم کنید.
  6. فرمان موردنظر را در قسمت Command وارد کنید.
  7. تنظیمات ارسال خروجی به ایمیل را بررسی کنید.
  8. وظیفه را ذخیره کنید.
  9. زمان اجرای نمایش‌داده‌شده توسط پنل را کنترل کنید.

ساخت کران جاب در DirectAdmin برای فایل PHP

/usr/local/bin/php -q /home/ACCOUNT/domains/example.ir/public_html/cron-tasks.php

ساختار پوشه‌ها در DirectAdmin معمولاً شامل نام دامنه است؛ اما مسیر دقیق به تنظیمات سرور بستگی دارد. بهترین روش این است که مسیر فایل را از File Manager کپی کنید و مسیر PHP CLI را از پشتیبانی هاست بگیرید.

اجرای URL در DirectAdmin

wget -q -O - "https://example.ir/cron-endpoint" >/dev/null 2>&1

همین دستور را می‌توان با curl نیز اجرا کرد:

curl -fsS "https://example.ir/cron-endpoint" >/dev/null 2>&1

تفاوت ساخت کران جاب در cPanel و DirectAdmin

ویژگی cPanel DirectAdmin
مسیر معمول Advanced → Cron Jobs Advanced Features → Cron Jobs
زمان‌بندی آماده Common Settings بسته به نسخه و پوسته
مدیریت ایمیل خروجی Cron Email Send All Cron Output to E-mail
مسیر سایت اغلب داخل public_html اغلب داخل domains/domain/public_html
منطق زمان‌بندی استاندارد Cron لینوکس استاندارد Cron لینوکس

در هر دو کنترل‌پنل، مهم‌ترین موضوع مسیر صحیح فایل و انتخاب فاصله زمانی منطقی است. تفاوت ظاهری پنل‌ها تغییری در ساختار اصلی Cron ایجاد نمی‌کند.

چه دستورهایی را می‌توان با Cron Job اجرا کرد؟

اجرای PHP CLI

/usr/local/bin/php -q /home/ACCOUNT/public_html/task.php

این روش مستقیماً فایل PHP را از محیط خط فرمان اجرا می‌کند و به DNS، وب‌سرور یا پاسخ HTTP وابسته نیست.

فراخوانی URL با wget

wget -q -O - "https://example.ir/task" >/dev/null 2>&1

این روش یک درخواست HTTP به آدرس مشخص ارسال می‌کند. اگر سایت پشت فایروال، رمز عبور، افزونه امنیتی یا محدودیت دسترسی باشد، ممکن است درخواست مسدود شود.

فراخوانی URL با curl

curl -fsS "https://example.ir/task" >/dev/null 2>&1

curl کنترل بیشتری روی هدرها، روش درخواست، احراز هویت و مدیریت خطا فراهم می‌کند.

اجرای اسکریپت Shell

/bin/bash /home/ACCOUNT/scripts/daily-maintenance.sh

فایل Shell باید مجوز مناسب داشته باشد و بهتر است خارج از پوشه عمومی سایت نگهداری شود.

اجرای WP-CLI

cd /home/ACCOUNT/public_html && /usr/local/bin/wp cron event run --due-now --quiet

WP-CLI وظایف آماده WP-Cron را مستقیماً در محیط وردپرس اجرا می‌کند. مسیر فرمان wp و پوشه نصب وردپرس باید متناسب با سرور تنظیم شود.

اجرای یک فرمان Artisan در Laravel

cd /home/ACCOUNT/application && /usr/local/bin/php artisan schedule:run >/dev/null 2>&1

در پروژه‌های Laravel معمولاً یک Cron Job هر دقیقه فرمان schedule:run را اجرا می‌کند و زمان‌بندی دقیق وظایف داخل برنامه تعریف می‌شود.

کران جاب چیست و چگونه در وردپرس و کنترل پنل تنظیم می‌شود
کران جاب چیست و چگونه در وردپرس و کنترل پنل تنظیم می‌شود

تنظیم کران جاب وردپرس چگونه انجام می‌شود؟

وردپرس سیستم زمان‌بندی داخلی خود را با نام WP-Cron دارد. این سیستم برای انتشار نوشته‌های زمان‌بندی‌شده، بررسی به‌روزرسانی‌ها و اجرای وظایف افزونه‌ها استفاده می‌شود.

بااین‌حال، WP-Cron یک Cron واقعی و دائماً فعال نیست. وردپرس هنگام بارگذاری صفحات بررسی می‌کند که آیا وظیفه‌ای آماده اجرا وجود دارد یا خیر. اگر وظیفه‌ای موعدش رسیده باشد، تلاش می‌کند آن را اجرا کند.

WP-Cron چگونه کار می‌کند؟

  1. یک کاربر یا ربات صفحه‌ای از سایت را باز می‌کند.
  2. وردپرس فهرست وظایف زمان‌بندی‌شده را بررسی می‌کند.
  3. وظایفی که زمان اجرای آن‌ها رسیده است شناسایی می‌شوند.
  4. WordPress درخواست اجرای WP-Cron را آغاز می‌کند.
  5. توابع متصل به Hookهای آماده اجرا فراخوانی می‌شوند.

اگر سایت کم‌بازدید باشد، ممکن است در زمان دقیق تعیین‌شده هیچ صفحه‌ای باز نشود. در این شرایط اجرای وظیفه تا اولین بازدید بعدی عقب می‌افتد. برای مثال، نوشته‌ای که برای ساعت ۱۰ برنامه‌ریزی شده ممکن است ساعت ۱۰:۲۰ و پس از ورود اولین بازدیدکننده منتشر شود.

تفاوت WP-Cron با Cron واقعی سرور

موضوع WP-Cron System Cron
روش فعال‌شدن با درخواست و بازدید سایت مستقل از بازدید سایت
دقت زمانی ممکن است با تأخیر اجرا شود بر اساس برنامه سرور اجرا می‌شود
نیاز به کنترل‌پنل خیر معمولاً بله
مناسب برای سایت کم‌بازدید ممکن است قابل اعتماد نباشد بله
کنترل منابع وابسته به درخواست‌های وردپرس قابل تنظیم با فاصله مشخص

اجرای خودکار وظایف وردپرس با Cron Job واقعی

برای افزایش قابلیت اطمینان می‌توان اجرای خودکار WP-Cron روی هر درخواست صفحه را غیرفعال کرد و یک Cron Job واقعی روی هاست ساخت. این روش برای فروشگاه‌ها، سایت‌های رزرو، سامانه‌های عضویت و سایت‌هایی که وظایف زمان‌دار مهم دارند مناسب‌تر است.

مرحله اول: غیرفعال‌کردن اجرای خودکار WP-Cron

فایل wp-config.php را باز کنید و قبل از خط پایان ویرایش، دستور زیر را قرار دهید:

define( 'DISABLE_WP_CRON', true );

این کد وظایف زمان‌بندی‌شده را حذف نمی‌کند. فقط مانع می‌شود وردپرس در هر بازدید، فرایند WP-Cron را به‌صورت خودکار آغاز کند.

هشدار: ابتدا Cron Job واقعی را آماده کنید و سپس WP-Cron داخلی را غیرفعال کنید. اگر این ثابت فعال شود ولی وظیفه سرور ساخته نشود، انتشار زمان‌بندی‌شده، بعضی ایمیل‌ها، پاک‌سازی‌ها و عملیات افزونه‌ها ممکن است متوقف شوند.

دستور کران جاب وردپرس با wget

برای اجرای WP-Cron هر ۱۰ دقیقه، زمان‌بندی زیر را انتخاب کنید:

*/10 * * * *

سپس فرمان زیر را وارد کنید:

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

دستور کران جاب وردپرس با curl

curl -fsS "https://tabanglobal.com/wp-cron.php?doing_wp_cron" >/dev/null 2>&1

دستور کران جاب وردپرس با PHP CLI

/usr/local/bin/php -q /home/ACCOUNT/public_html/wp-cron.php >/dev/null 2>&1

در DirectAdmin مسیر وردپرس ممکن است به شکل زیر باشد:

/usr/local/bin/php -q /home/ACCOUNT/domains/example.ir/public_html/wp-cron.php >/dev/null 2>&1

دستور کران جاب وردپرس با WP-CLI

cd /home/ACCOUNT/public_html && /usr/local/bin/wp cron event run --due-now --quiet

فرمان wp cron event run --due-now تمام رویدادهایی را که موعد اجرای آن‌ها رسیده است اجرا می‌کند. این روش برای سرورهایی که WP-CLI در دسترس دارند، قابل کنترل و مناسب است.

کران وردپرس را هر چند دقیقه اجرا کنیم؟

نوع سایت فاصله پیشنهادی اولیه
وبلاگ کم‌تغییر هر ۱۵ دقیقه
سایت شرکتی هر ۱۰ تا ۱۵ دقیقه
فروشگاه ووکامرس هر ۵ دقیقه
رزرو، عضویت یا اشتراک هر ۱ تا ۵ دقیقه با بررسی منابع
پردازش‌های سنگین بسته به مدت اجرای واقعی وظیفه

این فاصله‌ها قانون ثابت نیستند. حجم وظایف، قدرت هاست، حساسیت زمانی، تعداد سفارش‌ها و نوع افزونه‌ها باید بررسی شوند. اجرای هر دقیقه روی یک هاست ضعیف ممکن است مصرف منابع را افزایش دهد.

مدیریت زمان‌بندی وردپرس با WP-CLI

WP-CLI ابزار خط فرمان وردپرس است و امکان مشاهده، آزمایش و اجرای رویدادهای WP-Cron را فراهم می‌کند. این روش بیشتر برای مدیران فنی، توسعه‌دهندگان و پشتیبانان سایت مناسب است.

آزمایش عملکرد WP-Cron

wp cron test

نمایش رویدادهای زمان‌بندی‌شده

wp cron event list

اجرای تمام رویدادهای آماده

wp cron event run --due-now

اجرای Hook مشخص

wp cron event run نام_hook

نمایش زمان‌بندی‌های ثبت‌شده

wp cron schedule list

قبل از حذف یا اجرای دستی یک Hook باید بدانید مربوط به کدام افزونه است. حذف رویدادهای ناشناخته ممکن است عملکرد افزونه، تمدید اشتراک، پردازش سفارش یا عملیات نگهداری را مختل کند.

کران جاب در افزونه‌های وردپرس چه کاربردی دارد؟

بسیاری از افزونه‌های وردپرس برای اجرای وظایف پس‌زمینه از WP-Cron یا Action Scheduler استفاده می‌کنند. فعال‌بودن افزونه به‌تنهایی تضمین نمی‌کند که همه وظایف آن به‌موقع انجام شوند؛ زیرساخت زمان‌بندی نیز باید سالم باشد.

افزونه‌های پشتیبان‌گیری

افزونه‌های بکاپ می‌توانند در ساعت مشخص از پایگاه داده و فایل‌ها نسخه پشتیبان تهیه کنند. اگر WP-Cron متوقف شود، نسخه پشتیبان زمان‌بندی‌شده نیز ممکن است ساخته نشود.

افزونه‌های خبرنامه و ایمیل

برای جلوگیری از ارسال هزاران ایمیل در یک درخواست، افزونه‌های خبرنامه معمولاً ایمیل‌ها را دسته‌بندی و در چند مرحله ارسال می‌کنند. Cron یا صف پردازش وظیفه ادامه ارسال را بر عهده دارد.

افزونه‌های کش و بهینه‌سازی

پاک‌سازی کش قدیمی، پیش‌بارگذاری صفحات، ساخت کش جدید و پاک‌سازی داده‌های موقت ممکن است در زمان‌بندی‌های مشخص اجرا شوند. تنظیم نادرست می‌تواند باعث پاک‌شدن بیش‌ازحد کش و افزایش مصرف منابع شود.

افزونه‌های امنیتی

اسکن فایل‌ها، بررسی تغییرات، پاک‌سازی گزارش‌ها و ارسال هشدار ممکن است با WP-Cron انجام شوند. اسکن سنگین در ساعت شلوغ می‌تواند سرعت سایت را کاهش دهد؛ بنابراین بهتر است زمان آن به ساعات کم‌ترافیک منتقل شود.

افزونه‌های رزرو و نوبت‌دهی

انقضای رزرو موقت، ارسال یادآوری، آزادکردن ظرفیت، تغییر وضعیت پرداخت و اطلاع‌رسانی به کاربر به اجرای منظم وظایف وابسته است.

افزونه‌های عضویت و اشتراک

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

افزونه‌های سئو

بسته به افزونه، بعضی عملیات مانند تولید گزارش، بررسی دوره‌ای، پاک‌سازی داده‌ها، پردازش صف یا به‌روزرسانی اطلاعات می‌توانند از وظایف زمان‌بندی‌شده استفاده کنند. عملکرد دقیق هر افزونه باید از مستندات سازنده بررسی شود.

افزونه‌های اتصال به API

همگام‌سازی موجودی، نرخ ارز، اطلاعات محصول، سفارش یا داده‌های CRM معمولاً با یک رویداد زمان‌بندی‌شده انجام می‌شود. در پروژه‌های اختصاصی، این فرایند باید به‌صورت دسته‌ای و مقاوم در برابر خطا طراحی شود.

اگر سایت شما به اتصال اختصاصی، پردازش پس‌زمینه یا همگام‌سازی API نیاز دارد، صفحه توسعه افزونه اختصاصی وردپرس تابان استودیو مسیر تحلیل و اجرای این قابلیت‌ها را توضیح می‌دهد.

Action Scheduler در ووکامرس چیست؟

Action Scheduler یک صف وظایف پس‌زمینه برای وردپرس است که در ووکامرس و بسیاری از افزونه‌های آن استفاده می‌شود. این سیستم اطلاعات هر Action، زمان اجرا، ورودی‌ها، وضعیت و گزارش پردازش را ذخیره می‌کند.

نمونه وظایفی که ممکن است از Action Scheduler استفاده کنند عبارت‌اند از:

  • ارسال اعلان‌های مرتبط با سفارش؛
  • پردازش وب‌هوک‌های ووکامرس؛
  • تمدید اشتراک‌ها؛
  • ارسال ایمیل‌های زمان‌بندی‌شده؛
  • همگام‌سازی اطلاعات با سرویس خارجی؛
  • پردازش عملیات گروهی افزونه‌ها؛
  • اجرای وظایف معوق در چند دسته کوچک‌تر.

مشاهده Scheduled Actions در ووکامرس

برای مشاهده وظایف به مسیر زیر بروید:

ووکامرس ← وضعیت ← Scheduled Actions

در این صفحه معمولاً وضعیت‌های Pending، Complete، Failed، Canceled و In-progress نمایش داده می‌شوند. تعداد محدود وظایف Pending طبیعی است؛ اما اگر تعداد آن‌ها دائماً افزایش پیدا کند یا وظایف Failed تکرار شوند، باید WP-Cron، خطاهای افزونه و منابع هاست بررسی شوند.

آیا Action Scheduler همان WP-Cron است؟

خیر. Action Scheduler صف و مدیریت وظایف را انجام می‌دهد؛ اما اجرای پیش‌فرض آن معمولاً با WP-Cron آغاز می‌شود. به بیان ساده، WP-Cron زنگ شروع را می‌زند و Action Scheduler کارهای آماده داخل صف را پردازش می‌کند.

اگر WP-Cron اجرا نشود، Action Scheduler نیز ممکن است وظایف آماده را به‌موقع پردازش نکند. به همین دلیل فروشگاه‌های دارای سفارش زیاد، اشتراک، رزرو یا اتصالات API بهتر است Cron واقعی سرور داشته باشند.

افزونه WP Crontrol برای مدیریت Cron وردپرس

WP Crontrol افزونه‌ای برای مشاهده و مدیریت رویدادهای زمان‌بندی‌شده وردپرس است. پس از نصب، معمولاً از مسیر ابزارها ← Cron Events می‌توان رویدادها را مشاهده کرد.

این افزونه امکان مشاهده موارد زیر را فراهم می‌کند:

  • نام Hook هر رویداد؛
  • زمان اجرای بعدی؛
  • نوع تکرار؛
  • آرگومان‌های رویداد؛
  • تابع متصل‌شده به Hook؛
  • رویدادهای بدون تابع؛
  • رویدادهایی که اجرای آن‌ها عقب افتاده است.

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

در سایت‌های عملیاتی بهتر است ایجاد رویداد PHP از داخل پیشخوان محدود شود. اجرای کد PHP از پنل مدیریت قابلیت حساسی است و فقط باید در اختیار مدیر فنی مورداعتماد باشد.

کران جاب چیست و چگونه در وردپرس و کنترل پنل تنظیم می‌شود
کران جاب چیست و چگونه در وردپرس و کنترل پنل تنظیم می‌شود

رفع مشکل WP-Cron وردپرس و Cron Job هاست

وقتی وظیفه‌ای اجرا نمی‌شود، ابتدا باید مشخص کنید مشکل مربوط به زمان‌بندی سرور، فرمان Cron، فایل PHP، وردپرس یا خود افزونه است. بررسی مرحله‌ای از تغییرات تصادفی و ایجاد خطاهای جدید جلوگیری می‌کند.

۱. مسیر فایل اشتباه است

یکی از رایج‌ترین دلایل، واردکردن مسیر ناقص یا اشتباه فایل است. Cron معمولاً به مسیر کامل نیاز دارد:

/home/ACCOUNT/public_html/path/to/file.php

به مسیر نمایش‌داده‌شده در File Manager توجه کنید و تفاوت مسیر cPanel و DirectAdmin را در نظر بگیرید.

۲. مسیر PHP CLI درست نیست

ممکن است سایت با PHP 8.3 اجرا شود اما فرمان php در Cron به نسخه دیگری اشاره کند. این اختلاف می‌تواند باعث خطاهای سازگاری شود. مسیر PHP همان نسخه فعال سایت را از شرکت هاستینگ دریافت کنید.

۳. خروجی خطا را مخفی کرده‌اید

اگر از ابتدا >/dev/null 2>&1 استفاده کنید، خطاها دیده نمی‌شوند. برای آزمایش، موقتاً این بخش را حذف کنید یا خروجی را داخل فایل گزارش بنویسید.

۴. Cron Job بیش‌ازحد تکرار می‌شود

اجرای هر دقیقه برای همه وظایف مناسب نیست. اگر اجرای قبلی تمام نشده باشد، پردازش جدید آغاز می‌شود و ممکن است منابع هاست اشباع شوند.

۵. اسکریپت به مسیر نسبی وابسته است

محیط اجرای Cron با اجرای فایل از مرورگر تفاوت دارد. مسیر کاری فعلی ممکن است پوشه فایل نباشد. داخل اسکریپت از مسیرهای مطلق استفاده کنید یا قبل از فرمان به پوشه مناسب بروید:

cd /home/ACCOUNT/public_html && /usr/local/bin/php task.php

۶. دسترسی فایل مناسب نیست

فایل و پوشه باید برای کاربر حساب قابل خواندن و در صورت لزوم قابل اجرا باشند. دادن مجوزهای بیش‌ازحد مانند 777 راه‌حل مناسبی نیست و خطر امنیتی ایجاد می‌کند.

۷. درخواست wget یا curl مسدود می‌شود

فایروال، افزونه امنیتی، محدودیت IP، Basic Authentication یا قواعد سرور ممکن است درخواست HTTP را مسدود کنند. کدهای پاسخ 401، 403، 404 و 500 را بررسی کنید. در این شرایط استفاده از PHP CLI یا WP-CLI می‌تواند مطمئن‌تر باشد.

۸. WP-Cron غیرفعال شده اما Cron واقعی وجود ندارد

وجود دستور زیر در wp-config.php را بررسی کنید:

define( 'DISABLE_WP_CRON', true );

اگر این مقدار فعال است، باید Cron Job واقعی به‌طور منظم wp-cron.php یا فرمان WP-CLI را اجرا کند.

۹. وردپرس Loopback Request را اجرا نمی‌کند

WP-Cron داخلی ممکن است برای شروع پردازش از درخواست Loopback استفاده کند. خطاهای Site Health، تنظیمات DNS، گواهی SSL، فایروال یا افزونه امنیتی می‌توانند این درخواست را مختل کنند.

۱۰. منطقه زمانی اشتباه است

ساعت سرور، PHP و وردپرس را مقایسه کنید. ممکن است وظیفه اجرا شود اما به دلیل اختلاف منطقه زمانی تصور کنید اجرا نشده است.

۱۱. Hook افزونه حذف شده است

ممکن است رویداد زمان‌بندی‌شده باقی مانده باشد اما افزونه‌ای که تابع آن را ثبت می‌کرد غیرفعال یا حذف شده باشد. WP Crontrol این رویدادها را معمولاً به‌عنوان رویداد بدون Action مشخص می‌کند.

۱۲. صف ووکامرس پر شده است

در ووکامرس به Scheduled Actions بروید و تعداد وظایف Pending و Failed را بررسی کنید. خطای تکرارشونده یک Hook مشخص معمولاً به همان افزونه یا اتصال خارجی مربوط است.

۱۳. محدودیت منابع هاست فعال شده است

مصرف بیش‌ازحد CPU، RAM، Entry Process یا زمان اجرای PHP ممکن است وظیفه را متوقف کند. در این حالت باید وظیفه به دسته‌های کوچک‌تر تقسیم شود یا منابع هاست افزایش پیدا کند.

۱۴. فرمان فقط در SSH کار می‌کند

محیط Cron متغیرهای محیطی محدودتری دارد. دستورهایی که در SSH به دلیل PATH تنظیم‌شده کار می‌کنند ممکن است در Cron پیدا نشوند. برای همه فرمان‌ها مسیر کامل بنویسید.

۱۵. اسکریپت خطای منطقی دارد

ممکن است Cron به‌درستی اجرا شود اما خود اسکریپت نتیجه موردنظر را ایجاد نکند. اجرای دستی فرمان، بررسی گزارش PHP و ثبت شروع و پایان عملیات در فایل Log به تشخیص این حالت کمک می‌کند.

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

نکات امنیتی کران جاب در cPanel، DirectAdmin و وردپرس

اطلاعات محرمانه را داخل URL قرار ندهید

قرار دادن رمز عبور، کلید API یا توکن حساس در URL می‌تواند باعث ثبت آن در تاریخچه، گزارش‌های سرور یا ایمیل Cron شود. اطلاعات حساس را در فایل تنظیمات امن، متغیر محیطی یا سیستم مدیریت Secret نگهداری کنید.

اسکریپت حساس را خارج از public_html نگهداری کنید

اگر فایل فقط باید از CLI اجرا شود، بهتر است خارج از مسیر عمومی وب قرار بگیرد. در این صورت کاربران اینترنت نمی‌توانند مستقیماً آن را فراخوانی کنند.

از مسیر کامل فرمان‌ها استفاده کنید

به‌جای تکیه بر php، wp یا bash بدون مسیر، آدرس کامل فایل اجرایی را وارد کنید. این کار هم احتمال خطا را کم می‌کند و هم مانع اجرای ناخواسته فرمان دیگری با نام مشابه می‌شود.

زمان‌بندی را بیش‌ازحد کوتاه نکنید

فاصله کم باید دلیل فنی مشخص داشته باشد. اجرای هر دقیقه یک اسکن امنیتی یا پشتیبان‌گیری کامل معمولاً منطقی نیست.

از اجرای هم‌زمان چند نمونه جلوگیری کنید

در سرورهایی که فرمان flock در دسترس است، می‌توان از قفل استفاده کرد:

flock -n /tmp/site-task.lock /usr/local/bin/php -q /home/ACCOUNT/public_html/task.php

اگر قفل در اختیار اجرای قبلی باشد، اجرای جدید آغاز نمی‌شود. قبل از استفاده، پشتیبانی هاست باید در دسترس‌بودن flock را تأیید کند.

برای عملیات مهم Log داشته باشید

یک وظیفه حساس باید زمان شروع، پایان، تعداد آیتم‌های پردازش‌شده و پیام خطا را ثبت کند. بدون گزارش، تشخیص اجرای ناقص یا شکست خاموش دشوار است.

گزارش‌ها را بدون محدودیت نگه ندارید

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

فرمان‌های ناشناخته را کپی نکنید

فرمانی که از یک سایت یا کانال ناشناس دریافت کرده‌اید ممکن است فایل‌های سایت را حذف، اطلاعات را منتقل یا کد مخرب اجرا کند. هر فرمان باید پیش از ثبت توسط فرد فنی بررسی شود.

Cron را با کاربر root اجرا نکنید مگر ضرورت داشته باشد

در هاست اشتراکی Cron با کاربر حساب اجرا می‌شود. در سرور اختصاصی نیز بهتر است وظایف سایت با کاربر محدود اجرا شوند و فقط عملیات مدیریتی واقعی دسترسی root داشته باشند.

بهینه‌سازی عملکرد Cron Job در سایت‌های پربازدید

وظایف سنگین را به بخش‌های کوچک تقسیم کنید

پردازش ۱۰۰ هزار محصول در یک درخواست احتمالاً با محدودیت زمان یا حافظه روبه‌رو می‌شود. بهتر است هر بار تعداد مشخصی آیتم پردازش شود و نشانگر ادامه کار ذخیره شود.

کارهای سنگین را در ساعت کم‌ترافیک اجرا کنید

پشتیبان‌گیری، اسکن امنیتی، ساخت گزارش و بهینه‌سازی پایگاه داده بهتر است در ساعاتی اجرا شوند که کاربران کمتری داخل سایت هستند.

همه وظایف را رأس یک ساعت اجرا نکنید

اگر چندین وظیفه در ساعت ۲:۰۰ آغاز شوند، ممکن است ناگهان مصرف منابع افزایش پیدا کند. زمان‌ها را پخش کنید؛ برای مثال یک وظیفه ساعت ۲:۰۵ و وظیفه دیگر ساعت ۲:۳۰ اجرا شود.

مدت اجرای واقعی را اندازه‌گیری کنید

فاصله اجرای Cron باید از مدت اجرای عادی بیشتر باشد. برای وظایف متغیر، قفل هم‌زمانی و محدودیت تعداد آیتم ضروری است.

وظایف ناموفق را بی‌نهایت تکرار نکنید

اگر API خارجی از دسترس خارج شود، تکرار هر دقیقه می‌تواند تعداد درخواست‌های ناموفق را افزایش دهد. استفاده از Retry محدود و فاصله افزایشی میان تلاش‌ها روش مطمئن‌تری است.

از صف پردازش برای حجم بالا استفاده کنید

Cron برای شروع پردازش مناسب است؛ اما مدیریت هزاران وظیفه بهتر است با صفی مانند Action Scheduler یا سیستم صف اختصاصی انجام شود.

اشتباهات رایج در تنظیم Cron Job

  • استفاده از * * * * * بدون نیاز واقعی؛
  • غیرفعال‌کردن WP-Cron بدون ساخت Cron واقعی؛
  • واردکردن مسیر اشتباه فایل PHP؛
  • استفاده از نسخه PHP متفاوت با نسخه سایت؛
  • مخفی‌کردن خطاها در مرحله آزمایش؛
  • اجرای هم‌زمان چند نسخه از یک وظیفه؛
  • ذخیره رمز عبور و توکن داخل فرمان؛
  • اجرای عملیات سنگین در ساعات شلوغ؛
  • حذف رویدادهای WP-Cron بدون شناخت افزونه؛
  • بی‌توجهی به منطقه زمانی سرور؛
  • نداشتن فایل گزارش یا سیستم هشدار؛
  • اجراکردن Cron با فاصله کمتر از زمان پایان وظیفه؛
  • استفاده از مسیر نسبی به‌جای مسیر کامل؛
  • نادیده‌گرفتن صف Failed در WooCommerce؛
  • رهاکردن فایل‌های Log بدون پاک‌سازی.

چه زمانی نباید از Cron Job استفاده کنیم؟

Cron برای همه سناریوها بهترین گزینه نیست. در موارد زیر باید راهکار دیگری بررسی شود:

  • وقتی عملیات باید بلافاصله پس از یک رویداد انجام شود؛ در این حالت Webhook مناسب‌تر است.
  • وقتی وظیفه فقط یک بار باید اجرا شود و تکرارشونده نیست.
  • وقتی پردازش بسیار طولانی و نیازمند چند Worker هم‌زمان است؛ در این حالت صف پردازش مناسب‌تر است.
  • وقتی نتیجه باید توسط کاربر تأیید شود.
  • وقتی اسکریپت هنوز آزمایش نشده یا امکان اجرای تکراری امن ندارد.
  • وقتی شرکت هاستینگ اجرای فرمان موردنظر را ممنوع کرده است.
  • وقتی عملیات به دسترسی root نیاز دارد اما Cron در سطح کاربر اجرا می‌شود.

چک‌لیست ساخت یک Cron Job مطمئن

  1. هدف دقیق وظیفه را مشخص کنید.
  2. اسکریپت یا فرمان را ابتدا به‌صورت دستی اجرا کنید.
  3. مسیر کامل PHP، WP-CLI و فایل را پیدا کنید.
  4. زمان اجرای اسکریپت را اندازه‌گیری کنید.
  5. فاصله زمانی منطقی انتخاب کنید.
  6. منطقه زمانی سرور را بررسی کنید.
  7. در مرحله آزمایش خروجی خطا را ذخیره کنید.
  8. سطح دسترسی فایل‌ها را کنترل کنید.
  9. اطلاعات محرمانه را از فرمان خارج کنید.
  10. در صورت امکان از قفل هم‌زمانی استفاده کنید.
  11. برای شکست وظیفه هشدار یا Log تعریف کنید.
  12. پس از چند اجرای موفق، ایمیل یا خروجی اضافی را مدیریت کنید.
  13. رشد حجم فایل‌های گزارش را کنترل کنید.
  14. پس از تغییر افزونه یا نسخه PHP، Cron را دوباره آزمایش کنید.
  15. وظایف قدیمی و بدون استفاده را حذف کنید.

پرسش‌های متداول درباره کران جاب

کران جاب چیست؟

کران جاب یک وظیفه زمان‌بندی‌شده روی سرور است که یک فرمان یا اسکریپت را در ساعت یا فاصله زمانی مشخص به‌صورت خودکار اجرا می‌کند.

آیا استفاده از Cron Job به برنامه‌نویسی نیاز دارد؟

ساخت زمان‌بندی در cPanel یا DirectAdmin ساده است؛ اما فرمان یا اسکریپتی که اجرا می‌شود باید معتبر باشد. برای عملیات اختصاصی ممکن است به برنامه‌نویس نیاز داشته باشید.

آیا کران جاب باعث کندشدن سایت می‌شود؟

در صورت تنظیم صحیح خیر. اجرای بیش‌ازحد، اسکریپت سنگین، هم‌پوشانی وظایف یا صف‌های ناموفق می‌تواند منابع هاست را مصرف و سایت را کند کند.

چرا گزینه Cron Jobs در هاست من وجود ندارد؟

شرکت هاستینگ می‌تواند این قابلیت را برای بعضی بسته‌ها غیرفعال کند. در این شرایط باید از پشتیبانی هاست درخواست فعال‌سازی یا معرفی راهکار جایگزین کنید.

تفاوت WP-Cron و Cron Job واقعی چیست؟

WP-Cron هنگام دریافت بازدید سایت فعال می‌شود، اما Cron واقعی مستقل از بازدید و بر اساس زمان‌بندی سرور اجرا می‌شود.

آیا باید WP-Cron را غیرفعال کنم؟

برای همه سایت‌ها ضروری نیست. اگر Cron واقعی ساخته‌اید و به اجرای منظم وظایف نیاز دارید، غیرفعال‌کردن اجرای خودکار WP-Cron می‌تواند منطقی باشد. بدون Cron جایگزین این کار را انجام ندهید.

بهترین فاصله برای اجرای WP-Cron چقدر است؟

برای سایت شرکتی معمولاً ۱۰ تا ۱۵ دقیقه و برای فروشگاه یا سامانه رزرو ۱ تا ۵ دقیقه قابل بررسی است. فاصله نهایی به منابع هاست و حساسیت وظایف بستگی دارد.

چرا نوشته زمان‌بندی‌شده وردپرس منتشر نمی‌شود؟

کمبود بازدید، غیرفعال‌بودن WP-Cron، خطای Loopback، محدودیت هاست یا خطای افزونه می‌تواند باعث Missed Schedule شود. رویدادها را با WP Crontrol یا WP-CLI بررسی کنید.

عبارت /dev/null 2>&1 چه کاری انجام می‌دهد؟

این عبارت خروجی عادی و پیام‌های خطای فرمان را نادیده می‌گیرد. در مرحله عیب‌یابی نباید از آن استفاده کرد.

آیا می‌توان با Cron Job از سایت بکاپ گرفت؟

بله، به شرطی که اسکریپت یا فرمان معتبر پشتیبان‌گیری داشته باشید. نسخه بکاپ باید آزمایش شود و ترجیحاً یک کپی خارج از همان هاست نگهداری شود.

چطور بفهمیم Cron اجرا شده است؟

می‌توان خروجی را به ایمیل فرستاد، داخل فایل Log ذخیره کرد، زمان آخرین اجرا را در پایگاه داده ثبت کرد یا نتیجه را با WP-CLI و WP Crontrol بررسی کرد.

آیا می‌توان چند Cron Job برای یک سایت ساخت؟

بله. هر وظیفه می‌تواند زمان و فرمان مستقل داشته باشد. بهتر است زمان اجرای وظایف سنگین با یکدیگر تداخل نداشته باشد.

Action Scheduler چه ارتباطی با Cron دارد؟

Action Scheduler یک صف وظایف وردپرس است که در حالت پیش‌فرض معمولاً توسط WP-Cron فعال می‌شود. Cron فرایند را آغاز می‌کند و Action Scheduler وظایف آماده صف را پردازش می‌کند.

برای اجرای Cron از curl استفاده کنیم یا PHP CLI؟

PHP CLI به وب‌سرور و DNS وابسته نیست و در بسیاری از پروژه‌ها قابل اعتمادتر است. curl برای فراخوانی Endpointهای HTTP و API مناسب است. انتخاب نهایی به ساختار برنامه بستگی دارد.

آیا کران جاب از نظر امنیتی خطرناک است؟

خود Cron خطرناک نیست؛ اما اجرای فرمان ناشناس، افشای رمز، دسترسی بیش‌ازحد یا قراردادن اسکریپت حساس در مسیر عمومی می‌تواند خطر ایجاد کند.

جمع‌بندی؛ Cron Job ابزار خودکارسازی سرور است

در پاسخ به سؤال «کران جاب چیست» می‌توان گفت Cron Job یک سیستم زمان‌بندی برای اجرای خودکار فرمان‌ها و اسکریپت‌هاست. این قابلیت در cPanel و DirectAdmin به‌سادگی قابل تنظیم است و می‌تواند کارهایی مانند اجرای فایل PHP، فراخوانی URL، تهیه بکاپ، همگام‌سازی API، ارسال گزارش و پردازش وظایف وردپرس را انجام دهد.

در وردپرس باید تفاوت WP-Cron و Cron واقعی را درک کرد. WP-Cron به بازدید سایت وابسته است و ممکن است در سایت‌های کم‌بازدید با تأخیر اجرا شود. در فروشگاه‌ها، سامانه‌های عضویت، رزرو و پروژه‌های دارای وظایف حساس، اتصال WP-Cron به زمان‌بند واقعی سرور قابلیت اطمینان بیشتری ایجاد می‌کند.

تنظیم Cron فقط واردکردن پنج عدد و یک فرمان نیست. مسیر صحیح PHP، نسخه PHP، مدت اجرای وظیفه، منطقه زمانی، گزارش خطا، امنیت اطلاعات و جلوگیری از اجرای هم‌زمان باید بررسی شوند.

تابان استودیو، زیرمجموعه شرکت تابان گستران ونداد، در پروژه‌های توسعه وردپرس، طراحی افزونه اختصاصی، بهینه‌سازی سرعت و پشتیبانی فنی می‌تواند ساختار وظایف زمان‌بندی‌شده، صف‌های ووکامرس و اتصالات API را بررسی و اصلاح کند. برای بررسی زیرساخت سایت می‌توانید از صفحه پشتیبانی و نگهداری سایت استفاده کنید یا درخواست خود را از طریق سامانه سفارش آنلاین تابان استودیو ثبت کنید.

منابع معتبر برای مطالعه بیشتر