Nouveautés de Dataflow : stockage des logs en fichier, et nettoyage automatisé de l'historique

Dataflow logs

1 Apr 2026

Vous en avez marre d'avoir les logs de vos jobs dans la base de données ?
Vous en avez encore plus marre d'avoir des années d'historique de jobs sans moyen pratique de les supprimer ?
Découvrez les nouvelles fonctionnalités de Dataflow pour alléger votre historique.

Logs externalisés avec Flysystem

Jusqu’à présent, les logs étaient enregistrés en base de données. Cette méthode, bien que pratique, n'est pas compatible avec les moyens modernes de gestion des logs.

Pour se mettre à la page, il est possible depuis Dataflow 5.4 d'écrire les logs dans n'importe quel stockage compatible avec Flysystem.

Voici un exemple de config pour stocker les logs dans un S3 :

   

oneup_flysystem:
   adapters:
       awss3v3_dataflow:
           awss3v3:
               client: 'Aws\S3\S3Client'
               bucket: '%env(string:AWS_BUCKET)%'
               prefix: 'dataflow'
               options:
                   ACL: bucket-owner-full-control
       filesystems:
           dataflow_logs:
               adapter: awss3v3_dataflow
               alias: 'dataflow_filesystem'
  
   
   

code_rhapsodie_dataflow:
   exceptions_mode:
       type: 'file'
       flysystem_service: 'oneup_flysystem.dataflow_logs_filesystem' 
   

Nettoyage automatisé de l'historique

Dans un projet avec plusieurs jobs qui tournent souvent, l'historique peut rapidement se remplir avec des milliers de lignes.

Pour facilement nettoyer cet historique, une commande est disponible depuis Dataflow 5.5.

   

php bin/console code-rhapsodie:dataflow:job:cleanup 
   

Cette commande supprime tous les jobs terminés depuis plus de 30 jours. Cette durée de rétention est configurable :

   

code_rhapsodie_dataflow:
   job_history:
       retention: 30 
   

Plantage des jobs

Même si Dataflow essaie d'intercepter toutes les erreurs afin de marquer proprement chaque job comme terminé, il reste des cas où le job reste coincé dans l'état "En cours".

Ceci est source de confusion pour les utilisateurs qui pensent que le job est encore en train de s'exécuter, alors qu'il a planté.

Afin de mieux représenter l'état des jobs, une nouvelle est disponible depuis Dataflow 5.5.

   

php bin/console code-rhapsodie:dataflow:job:set-crashed 
   

Cette commande marque tous les jobs en cours depuis plus de 24 heures comme plantés. Cette durée est configurable :

   

code_rhapsodie_dataflow:
   job_history:
       crashed_delay: 24
  
   

Vous souhaitez aller plus loin et essayer Dataflow : https://github.com/code-rhapsodie/dataflow-bundle/#installation

Essayer Dataflow