From 4d0e65bf9bdb5a10a7928e422ee21c816127d97d Mon Sep 17 00:00:00 2001 From: COQUARD Cyrille Date: Fri, 27 Dec 2024 15:38:24 +0100 Subject: [PATCH] Added first version of the script --- ...g-WP-Cron-Into-The-System-Task-Schedule.md | 62 ++++++++++++++++++ .../_imgs/plugin-wp-cron-cron-scheduling.webp | Bin 0 -> 5686 bytes 2 files changed, 62 insertions(+) create mode 100644 plugin-developer-learning-pathway/12-Cron/04-Hooking-WP-Cron-Into-The-System-Task-Schedule.md create mode 100644 plugin-developer-learning-pathway/12-Cron/_imgs/plugin-wp-cron-cron-scheduling.webp diff --git a/plugin-developer-learning-pathway/12-Cron/04-Hooking-WP-Cron-Into-The-System-Task-Schedule.md b/plugin-developer-learning-pathway/12-Cron/04-Hooking-WP-Cron-Into-The-System-Task-Schedule.md new file mode 100644 index 0000000..c5ac7a3 --- /dev/null +++ b/plugin-developer-learning-pathway/12-Cron/04-Hooking-WP-Cron-Into-The-System-Task-Schedule.md @@ -0,0 +1,62 @@ +# Hooking WP Cron into the System Task Scheduler + +As mentioned previous event, if using native WP Cron is easier as it works out of the box, it is not the best option you have for critical tasks. + +For this reason, it is important to use the System Task Scheduler of your operating system to make sure jobs are executed on time. + +## Enable the System Task Scheduler + +Depending on your operating system, you will have a different configuration. + +### Windows +Windows calls their time based scheduling system the Task Scheduler. It can be accessed via the Administrative Tools in the control panel. + +How you setup the task varies with server setup. One method is to use PowerShell and a Basic Task. After creating a Basic Task the following command can be used to call the WordPress Cron script. + +``` +powershell "Invoke-WebRequest http://YOUR_SITE_URL/wp-cron.php" +``` + +### MacOS and Linux + +Mac OS X and Linux both use cron as their time based scheduling system. It is typically access from the terminal with the crontab -e command. It should be noted that tasks will be run as a regular user or as root depending on the system user running the command. + +Cron has a specific syntax that needs to be followed and contains the following parts: + +Minute + +Hour + +Day of month + +Month + +Day of week + +Command to execute + +![Cron scheduling](_imgs/plugin-wp-cron-cron-scheduling.webp) + +If a command should be run regardless of one of the time sections an asterisk (*) should be used. For example if you wanted to run a command every 15 minutes regardless of the hour, day, or month it would look like: + +``` +*/15 * * * * command +``` +Many servers have wget installed and this is an easy tool to call the WordPress Cron script. + +``` +wget --delete-after http://YOUR_SITE_URL/wp-cron.php +``` + +## Disable the vanilla WP-Cron + +Once the system task scheduler is active on our website, it is now time to remove the existing mechanism from WordPress. + +For that we need to go into the website `wp-config.php` file and add the following constant: + +```php +define('DISABLE_WP_CRON', true); +``` + +Once this is done, we are now relying on the system task scheduler to run our WordPress website. + diff --git a/plugin-developer-learning-pathway/12-Cron/_imgs/plugin-wp-cron-cron-scheduling.webp b/plugin-developer-learning-pathway/12-Cron/_imgs/plugin-wp-cron-cron-scheduling.webp new file mode 100644 index 0000000000000000000000000000000000000000..87279015e279cc347b9887a00dde4d9bf10fa192 GIT binary patch literal 5686 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

V(;n| zJ58_HrCP<#MHO?YxiqQ)!kH^KYA|cmuH1*}Phw88;So$JcHE&)V`lr(`CvPs&rNTE_o#{3?Q zdH_(igW2YYg08I?o2qz9#9(=%>VGc&S9@LZ>1V;?;Tfv2pMteyJsbl=(@xw2Nh!FGbCZNDZGsY4f#!Ih9a7 zIwwO^hPfKz&&qRVl4`dn;xgbDNO!Ypw{p}h#4s|!4l*Sh<2b%FC#_&MK>JTv!Gbpeq9woqMQF~ chR4(t#!Z74_`>Ff7y0$yfBx^k{(rF)0RGb>>i_@% literal 0 HcmV?d00001