Configuration de la tâche Cron
L'application s'appuie sur le planificateur de tâches de Laravel pour sa maintenance périodique : purge des annonces expirées, envoi des alertes de recherche, nettoyage des fichiers de cache, sauvegardes, etc. Sans la tâche Cron ci-dessous, ces tâches ne s'exécutent pas. Seuls les fichiers de cache expirés sont encore nettoyés, au fil des visites, depuis LaraClassifier v19.1.5 et JobClass v19.1.5 (voir Saturation du répertoire du cache).
Comment démarrer le planificateur ?
Ajoutez l'entrée Cron suivante à votre serveur. Elle doit s'exécuter chaque minute :
* * * * * cd /path/to/public_html && {PHP_BIN_PATH} artisan schedule:run >> /dev/null 2>&1
Pour les hébergements mutualisés (lorsque l'outil Cron n'accepte qu'un chemin de fichier), utilisez :
* * * * * {PHP_BIN_PATH} /path/to/public_html/utils/schedule-run.php >> /dev/null 2>&1
Ce Cron appelle le planificateur de commandes de Laravel chaque minute. Lorsque schedule:run est exécuté, Laravel évalue les tâches planifiées et exécute celles qui sont dues. L'exécuter chaque minute ne signifie pas que les tâches s'exécutent chaque minute : chaque tâche garde sa propre fréquence (voir le tableau ci-dessous).
{PHP_BIN_PATH}: le binaire PHP CLI de la version PHP de votre site, par ex./usr/bin/php8.3,/usr/bin/php,/usr/local/bin/php. Exécutezwhich phpen SSH pour le trouver. Sur cPanel, c'est souvent/usr/local/bin/phpou/opt/cpanel/ea-php83/root/usr/bin/php./path/to/public_html/: remplacez ce chemin par votre chemin réel (le dossier qui contient le fichierartisan).- Sur cPanel : allez dans Tâches Cron, sélectionnez Une fois par minute (* * * * *) dans Paramètres communs, puis collez la commande (sans le
* * * * *du début). - Sur Plesk : allez dans Tâches planifiées, puis ajoutez une tâche de type Exécuter une commande avec le style Cron
* * * * *. - N'exécutez pas la tâche Cron en tant que
root: le serveur web ne pourrait pas supprimer ensuite les fichiers de cache qu'elle crée. Utilisez l'utilisateur propriétaire des fichiers du site. - N'hésitez pas à demander plus d'informations à votre hébergeur.
Que lance le planificateur ?
| Tâche | Commande | Fréquence | Condition |
|---|---|---|---|
| Purge des annonces (archive et supprime automatiquement les annonces après expiration) | listings:purge |
Toutes les heures | Toujours |
| Envoi des alertes de recherche | alerts:send-notifications |
Toutes les heures | Toujours |
| Nettoyage des jetons de réinitialisation de mot de passe expirés | auth:clear-resets |
Toutes les 15 minutes | Toujours |
| Purge du cache (supprime les fichiers de cache expirés et obsolètes) | expired-cache:purge |
Tous les jours à 5h00 | Toujours |
| Nettoyage du cache CSS des thèmes | theme:prune-cache |
Tous les jours à 5h15 | Toujours |
| Vidage complet du cache des données | cache:clear |
Tous les dimanches à 6h00 et 6h15 | Sauf si désactivé (voir ci-dessous) |
| Vidage du cache des vues | view:clear |
Tous les dimanches à 6h00 | Uniquement si activé (voir ci-dessous) |
| Sauvegardes | backup:run / backup:clean |
Selon la configuration | Panneau d'administration → Paramètres → Backup |
| Worker de file d'attente (« poor man's queue ») | queue:scheduled-work |
Selon la configuration | File d'attente Database ou Redis, et option activée dans Panneau d'administration → Paramètres → Optimization |
Les heures sont évaluées dans le fuseau horaire du site. Ces options peuvent être définies dans le fichier /.env :
CACHE_MANAGER_FORCE_CLEAN_UP=false: désactive le vidage complet hebdomadaire du cache des données (non recommandé). La purge quotidienne du cache continue de s'exécuter.VIEW_CACHE_AUTO_CLEAN_UP=true: active le vidage hebdomadaire du cache des vues (désactivé par défaut).
REMARQUE : L'ancienne variable DISABLE_CACHE_AUTO_CLEAR n'est plus utilisée.
Comment vérifier que la tâche Cron fonctionne ?
En SSH, depuis le dossier racine du site :
php artisan schedule:listliste les tâches planifiées avec leur prochaine échéance.php artisan schedule:runexécute les tâches dues maintenant, exactement comme le fait la tâche Cron.php artisan expired-cache:purgelance immédiatement la purge du cache et indique ce qui a été supprimé.
Sans accès SSH, remplacez temporairement >> /dev/null dans la tâche Cron par >> /path/to/public_html/storage/logs/cron.log, patientez quelques minutes, puis vérifiez que ce fichier est alimenté chaque minute. Annulez la modification une fois terminé.
Comment fonctionne la commande de purge des annonces ?
Il y a 2 cas à considérer :
1. Annonces classiques
Configurez les options ci-dessous dans Panneau d'administration → Paramètres → Cron :
- Unactivated Listings Expiration : après cette durée (en jours), les annonces non activées sont supprimées.
- Activated Listings Expiration : après cette durée (en jours), les annonces activées sont archivées.
- Archived Listings Expiration : après cette durée (en jours), les annonces archivées sont supprimées.
- Manually Archived Listings Expiration : après cette durée (en jours), les annonces archivées manuellement sont supprimées.
Dans JobClass, ces options s'appellent Unactivated Ads Expiration, Activated Ads Expiration, etc.
2. Annonces Premium / Payantes
- Après la durée du forfait définie dans Panneau d'administration → Plans → [MODIFIER] → Duration, les annonces Premium deviennent des annonces classiques.
- La durée de publication d'un forfait gratuit actif (c.-à-d. un forfait avec
0comme prix) remplace le paramètre Activated Listings Expiration pour toutes les annonces gratuites. Lorsque plusieurs forfaits s'appliquent à une annonce (forfaits gratuits, abonnement de l'auteur et promotion de l'annonce), la durée la plus élevée est utilisée. Voir Fonctionnement des limites des forfaits. - Pour les propriétaires de sites ayant installé l'add-on Offline Payment, les annonces poussées en premium (c.-à-d. les promotions manuelles depuis le panneau d'administration) n'expirent jamais. Vous devez d'abord les retirer de la mise en avant (c.-à-d. supprimer la promotion manuellement).
- La durée de publication d'un forfait gratuit actif (c.-à-d. un forfait avec
- Ensuite, les règles des annonces classiques (vues au n°1) sont appliquées pour nettoyer la base de données du site.