Watch Mode : la surveillance passive
Le Watch Mode V8 surveille un ou plusieurs dossiers en arrière-plan et déclenche une séquence dès qu'un événement se produit (nouveau fichier, modification, suppression). C'est la base de tous les workflows d'automatisation pilotés par événements : traitement de factures dès leur dépôt, compression automatique des logs, synchronisation cloud en temps réel.
La surveillance de dossiers remplace avantageusement les cron jobs pour les traitements déclenchés par la présence de données : pas de délai fixe, pas de traitements inutiles quand le dossier est vide.
Stratégie immediate
Déclenche la séquence dès qu'un fichier est créé ou modifié, sans délai :
automation-sequence watch --dir /data/imports/ --pattern "*.csv" --strategy immediate --sequence traiter_import.asenc
// En JSON dans la configuration de Watch
{
"watch_dir": "/data/imports/",
"pattern": "*.csv",
"strategy": "immediate",
"events": ["created", "modified"],
"sequence": "traiter_import.asenc",
"pass_vars": {"filepath": "{{event.path}}"}
}
Cas d'usage : traitement d'un fichier d'import dès son dépôt dans un dossier partagé.
Stratégie debounced
Attend N secondes d'inactivité avant de déclencher. Évite les déclenchements multiples quand un logiciel écrit un fichier en plusieurs passes :
{
"strategy": "debounced",
"debounce_s": 5, // attendre 5s d'inactivité
"aggregate": true // regrouper tous les fichiers du burst
}
// Si 10 fichiers arrivent en 3 secondes → 1 seul déclenchement
// avec {{event.files}} = liste des 10 fichiers
Stratégie scheduled
Combine surveillance et planification : vérifie à intervalles réguliers si des fichiers correspondant au pattern sont présents, et déclenche si oui :
{
"strategy": "scheduled",
"cron": "0 6 * * 1-5", // lundi-vendredi à 6h
"min_files": 1, // ne déclenche que si ≥ 1 fichier
"move_after":"processed/" // déplacer après traitement
}
Stratégie incremental
Traite uniquement les fichiers nouveaux depuis le dernier passage, en mémorisant un curseur d'état :
{
"strategy": "incremental",
"state_file": "~/.monapp/watch_cursor.json",
"sort_by": "mtime", // traiter dans l'ordre chronologique
"batch_size": 50 // max 50 fichiers par déclenchement
}
Upload cloud déclenché
// Séquence déclenchée par Watch — compress + upload
[
{
"type": "universal_installer_compress",
"source": "{{event.path}}",
"output": "{{event.path}}.uxc",
"algo": "auto"
},
{
"type": "cloud_upload",
"profile": "prod-s3",
"local_path": "{{event.path}}.uxc",
"remote_path": "backups/{{date_today}}/{{event.filename}}.uxc"
}
]
Rotation des fichiers surveillés
{
"watch_dir": "/var/log/app/",
"pattern": "*.log",
"strategy": "incremental",
"after_process": {
"action": "rotate", // move | delete | archive | rotate
"archive_dir": "archives/{{date_YYYYMM}}/",
"compress": true,
"keep_days":90
}
}
Conclusion
Les 4 stratégies Watch Mode couvrent tous les cas d'usage d'automatisation pilotée par événements fichier : immediate pour les traitements urgents, debounced pour les burst d'arrivées, scheduled pour les traitements batch planifiés, incremental pour les grandes volumétries. La combinaison Watch + séquence JSON chiffrée + upload cloud constitue un pipeline de traitement et archivage entièrement automatique.