How to disable the WordPress CRON job and set it up in Onyx
WordPress doesn’t have a built-in scheduler to run regular tasks, so to get around this it fires off a request to process
wp-cron.php every time a visitor requests a page.
There are a couple of issues with this, firstly on busy sites this means this cron task will be running all the time - when it really doesn’t need to.
- On a small website with a few pages and a few hundred visitors a day
wp-cron.phpisn't a problem, but imagine a larger website with maybe a 100 visitors an hour. If each visitor reads your home page, and 2 others, that would mean that
wp-cron.phpis being called 300 times an hour, 7200 times a day. Plus, on a busy/large website
wp-cron.phpmight take a few minutes to run.
Multiple copies of
wp-cron.phpcan be started at once as well, because people don't wait in line to view your web pages! This means that more memory is needlessly consumed. It all snowballs into a horrible resource hog.
We've seen some busy sites running multiple instances of
wp-cron.phptasks consuming over 200Mb of virtual memory each - not an efficient use of resources.
- This flip side though can be just as problematic - if your site is well optimised and most of the page requests are being served from cache the request to process
wp-cron.phpmay not happen as often as you’d like.
There is a solution, in both these cases - disable the WordPress CRON and setup a Onyx CRON job on a schedule you control.
Both disabling the WordPress Internal CRON and setting up an Onyx CRON can be done via Settings > Cron jobs
Disable the WordPress Internal CRON and setup the replacement Onyx CRON
Click the Disable WordPress Internal Cron button.
Once it completes you'll see a banner with a click here link to setup the replacement Onyx CRON.
Click the click here link.
You'll see the New Cron job screen with the command to execute pre-filled as WordPress Internal Cron.
You have some pre-sets you can select for the schedule by clicking the Hourly, Daily, Weekly and Monthly buttons.
How frequently you configure the WordPress Cron to run is site dependant - if you're running a busy shopping site you may want it to run every 5 minutes to process orders. Whereas if you just have a nightly backup scheduled you could run the Cron once a day to trigger the backup.
You can manually enter each field:
Minute: 0 - 59
Hour: 0 - 23
Day of month: 1 - 31
Month: 1 - 12
Day of week: 0 - 6 (Sunday to Saturday)
* in any field means Every (minute, hour, day of month, month, day of week)
Once you've configured your desired schedule click Create Cron Job.