Last active
June 19, 2026 09:30
-
-
Save thierrypigot/aad38c89ad94999bc2379ce318bb1b56 to your computer and use it in GitHub Desktop.
Fichier "mu-plugins". Maintient les tables Action Scheduler à une taille raisonnable : purge automatique des actions terminées, annulées et échouées au-delà de 7 jours, avec un lot de nettoyage élargi.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| <?php | |
| /** | |
| * Plugin Name: Purge Action Scheduler | |
| * Description: Maintient les tables Action Scheduler à une taille raisonnable : purge automatique des actions terminées, annulées et échouées au-delà de 7 jours, avec un lot de nettoyage élargi. | |
| * Plugin URI: https://www.wearewp.pro | |
| * Version: 1.0.0 | |
| * Author: WeAre[WP] | |
| * Author URI: https://www.wearewp.pro | |
| * License: GPL-2.0-or-later | |
| * | |
| * @package WeAreWP\PurgeActionScheduler | |
| */ | |
| defined( 'ABSPATH' ) || exit; | |
| /** | |
| * Ajoute le statut "failed" aux actions purgées par le nettoyeur natif. | |
| * | |
| * Par défaut, Action Scheduler ne purge que les actions "complete" et | |
| * "canceled". Les actions en échec ("failed") ne sont jamais supprimées et | |
| * s'accumulent indéfiniment dans drnln__actionscheduler_actions, ce qui fait | |
| * gonfler la table sans limite. Ce filtre les réintègre dans le cycle de | |
| * nettoyage automatique. | |
| * | |
| * @see ActionScheduler_QueueCleaner | |
| * | |
| * @param string[] $statuses Liste des statuts éligibles au nettoyage. | |
| * @return string[] Liste complétée avec le statut "failed". | |
| */ | |
| add_filter( 'action_scheduler_default_cleaner_statuses', function ( $statuses ) { | |
| $statuses[] = 'failed'; | |
| return $statuses; | |
| } ); | |
| /** | |
| * Augmente la taille du lot traité à chaque passage du nettoyeur. | |
| * | |
| * La valeur par défaut est de 20 actions par exécution, ce qui est trop lent | |
| * pour résorber un volume important ou suivre le rythme de plugins générant | |
| * beaucoup d'actions récurrentes (WooCommerce, YITH Bookings, WPForms...). | |
| * On la porte à 100 pour accélérer le maintien sans surcharger la base. | |
| * | |
| * @see ActionScheduler_QueueCleaner | |
| * | |
| * @return int Nombre d'actions purgées par passage. | |
| */ | |
| add_filter( 'action_scheduler_cleanup_batch_size', function () { | |
| return 100; | |
| } ); | |
| /** | |
| * Réduit la durée de rétention des actions terminées. | |
| * | |
| * Détermine l'ancienneté minimale, en secondes, à partir de laquelle une | |
| * action terminée devient éligible au nettoyage. La valeur native est de | |
| * 30 jours ; on la ramène à 7 jours pour conserver un historique utile au | |
| * débogage tout en limitant la croissance des tables. Les actions "pending" | |
| * et "in-progress" ne sont jamais concernées par ce délai. | |
| * | |
| * @see ActionScheduler_QueueCleaner | |
| * | |
| * @return int Durée de rétention en secondes (WEEK_IN_SECONDS = 604800). | |
| */ | |
| add_filter( 'action_scheduler_retention_period', function () { | |
| return WEEK_IN_SECONDS; | |
| } ); |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment