En résumé : Action Scheduler WordPress est une bibliothèque développée par Automattic qui remplace les crons WordPress natifs par un système de file d’attente robuste et fiable. Contrairement aux crons classiques qui dépendent du trafic du site, Action Scheduler utilise une vraie file d’attente asynchrone avec historique complet, logs détaillés et traçabilité de chaque tâche planifiée.
Les crons WordPress classiques ? Franchement, dès que ton projet prend de l’ampleur, ils montrent vite leurs limites. Heureusement, Automattic ont sorti une solution carrément plus costaud : Action Scheduler WordPress. Je te montre comment l’intégrer dans tes projets, même si t’as pas WooCommerce installé.
Table des matières
- Pourquoi les crons WordPress natifs montrent leurs limites
- Installation Action Scheduler : deux méthodes
- Configuration préalable obligatoire
- Créer votre première action planifiée
- Migrer depuis les crons WordPress natifs
- Surveiller l’exécution avec les hooks
- Système de retry automatique
- Conclusion
Pourquoi les crons WordPress natifs montrent leurs limites
Les crons WordPress natifs (WP-Cron) ont trois gros défauts qui impactent la performance de votre site :
- Dépendance au trafic : pas de visite sur le site = pas d’exécution des tâches
- Zéro historique : impossible de savoir ce qui s’est réellement passé
- Gestion approximative : pas de file d’attente, pas de retry automatique en cas d’échec
Action Scheduler WordPress vient régler tous ces problèmes avec :
- Un timing précis et fiable indépendant du trafic
- Des logs / historique directement dans l’admin WordPress
- Du traitement asynchrone qui tient la route
- Une file d’attente intelligente avec priorités
- Une gestion d’erreurs professionnelle
- Des hooks de monitoring avancés
Cette bibliothèque est utilisée par des millions de sites WooCommerce, ce qui garantit sa fiabilité et sa maintenance à long terme.
Installation Action Scheduler WordPress : deux méthodes au choix
Méthode 1 : Le plugin standalone
Tu télécharges le plugin depuis le dépôt GitHub officiel Action Scheduler et tu l’installes comme n’importe quel plugin WordPress. Simple et efficace pour tester rapidement.
Méthode 2 : Via Composer
Pour créer un plugin custom, intègre directement la bibliothèque via Composer :
composer require woocommerce/action-scheduler
Cette approche intègre Action Scheduler WordPress directement dans ton plugin perso.
Configuration préalable obligatoire pour Action Scheduler WordPress
Peu importe la méthode d’installation choisie, tu dois désactiver les crons WordPress natifs dans ton fichier wp-config.php :
define( 'DISABLE_WP_CRON', true );
Cette ligne désactive le système WP-Cron pour éviter les conflits avec Action Scheduler WordPress.
Configurer une vraie tâche cron serveur
Ensuite, configure une tâche cron système pour déclencher l’exécution régulièrement. Deux options s’offrent à toi :
Option 1 : Via cURL (méthode universelle)
* * * * * curl -s https://votre-site.com/wp-cron.php?doing_wp_cron > /dev/null 2&1
Option 2 : Via WP-CLI (si disponible sur ton hébergement)
* * * * * cd /chemin/vers/wordpress && wp cron event run --due-now > /dev/null 2&1
Ces exemples lancent une vérification toutes les minutes. Adapte la fréquence selon tes besoins réels pour optimiser les ressources serveur. Pour en savoir plus sur WP-CLI, consulte la documentation officielle WP-CLI.
Créer votre première action planifiée avec Action Scheduler WordPress
La syntaxe d’Action Scheduler WordPress est franchement simple et intuitive 🧙 :
add_action( 'init', 'tas_schedule_test' );
function tas_schedule_test() {
if ( isset( $_GET['test_retry'] ) && current_user_can( 'manage_options' ) ) {
$action_id = as_schedule_single_action( time(), 'test_action', ['test'] );
error_log( "Action planifiée avec ID: {$action_id}" );
wp_die( "Action planifiée (ID: {$action_id}). Attends 2 secondes puis va sur wp-cron.php?doing_wp_cron. Regarde debug.log" );
}
}Cette fonction crée une action qui s’exécute immédiatement (time()), appelle le hook test_action, et lui passe le tableau ['test'] en paramètre.
Définir le comportement de votre action
Maintenant, définissons ce que fait concrètement ton action Action Scheduler WordPress :
add_action( 'test_action', 'tas_test_action' );
function tas_test_action( $data ) {
error_log( 'init' );
// throw new Exception( 'Échec volontaire' ); // Pour tester les erreurs
error_log( 'SUCCÈS !' );
}Une fois ton action créée, direction /wp-admin/tools.php?page=action-scheduler pour visualiser tes tâches dans l’interface d’administration : en attente, en cours d’exécution, terminées ou échouées.

Migrer depuis les crons WordPress natifs
Tu utilises déjà les crons WordPress ? La migration est ultra simple : seul l’appel de planification change. Le reste de ton code ? Aucune modif nécessaire.
Remplace simplement :
wp_schedule_event()paras_schedule_recurring_action()wp_schedule_single_event()paras_schedule_single_action()
Tes callbacks existants fonctionnent sans modification.
Surveiller l’exécution avec les hooks
Action Scheduler WordPress te file des hooks puissants pour tracer précisément ce qui se passe dans ta file d’attente 🐾 :
/*
* Logger TOUS les événements Action Scheduler WordPress
*/
add_action( 'action_scheduler_failed_execution', 'tas_log_failed', 10, 2 );
function tas_log_failed( $action_id, $exception ) {
error_log( sprintf(
'[AS] action_scheduler_failed_execution - ID: %d - Exception: %s',
$action_id,
$exception->getMessage()
) );
}
add_action( 'action_scheduler_before_process_queue', 'tas_log_before_queue' );
function tas_log_before_queue() {
error_log( '[AS] Le runner démarre...' );
}
add_action( 'action_scheduler_after_process_queue', 'tas_log_after_queue' );
function tas_log_after_queue() {
error_log( '[AS] Le runner a terminé' );
}Ces logs te permettent de déboguer efficacement et de repérer les problèmes rapidement.

Créer un système de retry automatique avec Action Scheduler WordPress
Petit bémol : Action Scheduler WordPress n’a pas de système de retry natif intégré (ou je ne l’ai pas trouvé 🤓 ). Voici ma solution pour combler ce manque :
Récupérer les actions échouées
$failed_actions = as_get_scheduled_actions( [
'status' => ActionScheduler_Store::STATUS_FAILED,
'per_page' => 20,
'order' => 'DESC'
] );On récupère les 20 dernières actions échouées (un nombre raisonnable pour éviter de surcharger le système). On pense toujours volumétrie !!!
Replanifier intelligemment les tâches
$count = 0;
$results = [];
foreach ( $failed_actions as $action_id => $action ) {
$old_id = $action_id;
$hook = $action->get_hook();
$args = $action->get_args();
// Planification d'une nouvelle action
$new_id = as_schedule_single_action( time(), $hook, $args );
// Suppression de l'ancienne action
ActionScheduler::store()->delete_action( $old_id );
$results[] = "✅ {$hook} (ID: {$old_id} → {$new_id})";
$count++;
error_log( "Action {$old_id} relancée → Nouveau ID: {$new_id}" );
}Point d’attention crucial : pense bien à supprimer les anciennes actions pour éviter de replanifier indéfiniment les mêmes erreurs dans Action Scheduler WordPress.
Tu peux exposer ce système via un endpoint de l’API REST WordPress ou une URL sécurisée avec token d’authentification. Pour passer en production, envisage de décaler progressivement les replanifications plutôt que de tout relancer d’un coup (même si l’outil va de lui même mettre en fil d’attente et traiter comme il peut).
FAQ
Action Scheduler est une bibliothèque développée par Automattic qui remplace le système WP-Cron natif par une file d'attente robuste avec logs, historique complet et gestion avancée des erreurs. Elle est utilisée nativement par WooCommerce mais fonctionne parfaitement de manière standalone.
Les crons WordPress natifs dépendent du trafic du site et n'offrent aucun historique ni système de retry. Action Scheduler garantit une exécution fiable même sans visiteurs, avec logs détaillés et gestion automatique des échecs pour améliorer la fiabilité de vos tâches planifiées.
Oui, absolument. Bien que développé par l'équipe WooCommerce, Action Scheduler est une bibliothèque standalone qui fonctionne parfaitement sur n'importe quel site WordPress, avec ou sans WooCommerce installé.
Conclusion : un vrai boost pro pour vos tâches planifiées WordPress
Action Scheduler WordPress transforme la gestion des tâches planifiées en un système vraiment professionnel et fiable. Développé et maintenu par Automattic, tu peux lui faire confiance : c’est du solide, testé et éprouvé sur des millions de sites WooCommerce dans le monde entier.
Tu restes dans l’écosystème WordPress tout en bénéficiant d’outils de qualité professionnelle : historique complet avec logs détaillés, gestion d’erreurs robuste, file d’attente asynchrone performante et interface d’administration intuitive. Un investissement minimal en temps de configuration pour un gain de robustesse et de fiabilité considérable.
Que tu développes un plugin custom, un thème avancé ou que tu gères simplement un site WordPress complexe, Action Scheduler WordPress mérite sa place dans ta boîte à outils de développeur. La migration depuis les crons natifs est simple et les bénéfices immédiats.
Prêt à passer vos tâches planifiées à la vitesse supérieure ? Consultez la documentation complète Action Scheduler sur GitHub et commencez dès aujourd’hui à profiter d’un système de crons digne de ce nom.

