wordpress-cron

Tuning WordPress: come gestire i cron

Indice dei contenuti

WordPress integra al suo interno un meccanismo di schedulazione delle attività, basato sul file wp-cron.php. 

 
La sua esecuzione permette di eseguire i task con cadenza periodica, si occupa tra le altre cose di verificare la presenza di aggiornamenti del sistema, verificare la presenza di aggiornamenti dei plugin e temi, inviare email, notifiche e tanto altro.

Il meccanismo di default con cui viene eseguita questa attività ha tre grandi svantaggi:

  • Il cron viene eseguito solo quando quando viene richiamato il sito via web, la schedulazione in questo modo non è perfettamente temporizzata se non viene richiamato il sito il cron non viene eseguito.
  • L’attività impatta sui processi php legati al server web, generalmente php-fpm o php-cgi utilizzando in maniera concorrenziale le stesse risorse del sito web.
  • Il processo cron viene eseguito all’ interno dello stesso processo php che genera la pagina web incidendo sulle performance del sito stesso.

Alla luce di queste considerazioni il consiglio è quello di far gestire in maniera separata, l’esecuzione di tali attività, impostando l’esecuzione manuale del file wp-cron.php sul cron di sistema.

La configurazione è molto semplice e si compone di due attività:

1) Configurazione su Wordpres

Nel file wp-config.php aggiungere la seguente direttiva:

define('DISABLE_WP_CRON', true);

2) Configurare l’esecuzione del cron

Possiamo eseguire la configurazione sia manualmente sia tramite un pannello di controllo come Plesk.

Se vogliamo eseguire la configurazione manuale, avendo accesso ad una shell possiamo digitare il seguente comando:

crontab -e

e aggiungere il seguente configurazione:

*/5 * * * * HTTP_HOST=HOSTNAME PHP PATH/wp-cron.php >/dev/null 2>&1

HOSTNAME è il nome del nostro sito;

PHP è il percorso completo del binario di php;

PATH è il percorso completo della cartella dove è presente il file wp-cron.php.

Un esempio completo:

*/5 * * * * HTTP_HOST=blog.seeweb.it /usr/bin/php /var/www/vhosts/blog.seeweb.it/httpdocs/wp-cron.php >/dev/null 2>&1

Se sul nostro server è installato Plesk possiamo configurare il cron direttamente da pannello.

Accedere alla sezione: “Attività pianificate”

e configurare l’attività compilando i campi come indicato nello screenshot.

Il comando da inserire è il medesimo impostato in precedenza, mentre nel campo “Esegui” si può impostare la cadenza di esecuzione:

Questa guida mostra come eseguire il cron di WordPress tramite il php da riga di comando (php-cli), nel caso ci fossero problemi o questo non fosse presente si potrà sempre configurare il cron per richiamare il file wp-cron.php attraverso il server web, in questo caso basterà sostituire il comando di esecuzione del cron con:

(Ricordatevi di sostutire HOST con il nome del vostro sito)

wget http://HOST/wp-cron.php
curl -s http://HOST/wp-cron.php

Consigliamo di configurate questa impostazione su tutti i vostri WordPress in modo da riuscire a monitorare l’esecuzione dei processi schedulati e migliorare le performance del vostro sito.

CONDIVIDI SUI SOCIAL

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

− 1 = 2