Cron در سیستمهای یونیکس – لینوکس برای اجرای دستورات زمانبندی شده در فواصل زمانی منظم استفاده میشود. اکثر وب سرورها از این امکان برای حفظ پایداری سرور و اجرای وظایف برنامه ریزی شده استفاده می کنند.
هسته وردپرس دارای سیستم cron مجزا میباشد که به آن امکان می دهد به روز رسانی ها را بررسی کند، نظرات قدیمی را از سطل زباله حذف کند، پست های زمان بندی شده را منتشر کند و سایر کارهای برنامه ریزی شده را انجام دهد.
علاوه بر این، افزونه های وردپرس نیز می توانند از این عملکرد برای انجام وظایف مشخص شده توسط شما بهره مند شوند. به عنوان مثال، افزونه پشتیبان وردپرس شما قادر خواهد بود از cron وردپرس برای تهیه ی پشتیبان از محتوای خاصی در زمان مشخص شده استفاده کند.
Wp-Cron با بازدید کاربر راهاندازی میشود و اگر بازدیدی در زمان وظایف مشخصشده رخ نداده باشد، عملکرد اجرا نمیشود.
به سبب این که WP-Cron به خاطر ناپایداریهای مختلف باعث کاهش سرعت وب سایت و موجب مشکلات متعدد در سرورهای میزبانی مشترک می شود، در بخش اطلاعات پایگاه داده فایل wp-config.php بعد از خط “define(‘DB_COLLATE’, ”);” با افزودن کد زیر می توان آن را غیرفعال کرد.
“define(‘DISABLE_WP_CRON’, true);”.
زمانی که این ویژگی داخلی وردپرس غیرفعال باشد، لازم است که عملکرد واقعی Cron بر روی سرور تعریف شود تا از هرگونه اختلال در اجرای به موقع وظایف خاص جلوگیری به عمل آید.
اگر از هاست اشتراکی در سیستم عامل لینوکس استفاده می کنید، امکان ایجاد توابع Cron وجود دارد که می توانید به صورت خودکار در زمان های مختلف از طریق سی پنل یا دایرکت ادمین و یا در صورت دسترسی مستقیم به سرور از طریق دستورات خاص اجرا کنید.
در سرورهای ویندوز، فرآیند cron job را می توان از طریق Task Scheduler ایجاد کرد.
Task Scheduler تمامی ویژگی های cronjob را اعمال میکند که تنها از نظر پلت فرم و رابط کاربری باهم متفاوت هستند.
برای اجرای وظایف برنامه ریزی شده مانند “Retrieve URL” در سرورهای ویندوز، ویژگی powershell باید فعال باشد. در صورت عدم وجود ویژگی Powershell، فرآیندهای cronjob وردپرس قابل اجرا نخواهند بود.
با این حال، از آنجایی که Powershell باعث ایجاد برخی مشکلات امنیتی می شود، به طور کلی در سرورهای اشتراکی غیرفعال می شود تا از امنیت داده های کاربران اطمینان حاصل شود و سیستم بتواند با کیفیت قابل قبول به فعالیت خود ادامه دهد.
بنابراین، اگر می خواهید نرم افزارهای مبتنی بر PHP را بر روی سرور ویندوز اجرا کنید، سرور اختصاصی یا (VPS) به جای میزبانی اشتراکی برای شما انتخاب بهتری خواهد بود.
ابتدا از مسیر “Control Panel\All Control Panel Items\Administrative Tools” بر روی “Task Scheduler” کلیک کنید.
سپس در بخش نمای درختی راست کلیک کنید، از منوی باز شده «Create Task» را اجرا کنید.
در سر برگ “General” نام Task را مشخص میکنیم.
در بخش «عملکردها»، با کلیک بر روی دکمه «جدید…»، ابتدا از بخش “Action” گزینه “Start a program” را انتخاب می کنیم. در قسمت “Program/script” عبارت “Powershell” را تایپ می کنیم.
قسمت “Add arguments (optional)” دستور “Invoke-WebRequest https://mysite.com/wp-cron.php” را درج نموده بر روی دکمه OK کلیک می کنیم.
از قسمت “Triggers” با کلیک روی «جدید» گزینه “One time” را انتخاب کرده و قسمت «شروع کار» را به «بر اساس برنامه زمانبندی» تغییر میدهیم.
زمان بخش “Repeat task every” را ۱۰ دقیقه تا یک ساعت انتخاب می کنیم.
با زدن دکمه OK تنظیمات را ذخیره می کنیم و وقتی دوباره OK را زدیم وظیفه جدید را ذخیره می کنیم.
اگرچه امکان یافتن افزونههای چند منظوره سفارشی و رایگان برای مدیریت وظایف برنامهریزیشده در فهرست پلاگینهای وردپرس وجود دارد، اما اغلب اطلاعات مورد نیاز در دفترچههای راهنمای توسعهدهندگان درباره نحوه کیفیت و کارایی آنها در سرورهای ویندوزی فاقد کنترل پنل های معروف موجود نیست.