À propos du projet
Dotflow est une bibliothèque Python légère pour la construction de pipelines d'exécution. Les utilisateurs définissent des tâches via le décorateur @action, les enchaînent avec DotFlow.task.add() et exécutent le workflow en appelant start(). Elle propose des fonctionnalités de résilience intégrées, notamment les tentatives de réessai, le timeout, le backoff exponentiel et la reprise basée sur des points de contrôle pour les workflows ayant échoué. Elle prend en charge quatre modes d'exécution prêts à l'emploi : séquentiel (par défaut), arrière-plan (thread non bloquant), parallèle (toutes les tâches s'exécutent simultanément) et groupes parallèles (les groupes s'exécutent en parallèle tandis que les tâches au sein d'un groupe s'exécutent séquentiellement).
La bibliothèque propose des intégrations d'observabilité natives avec OpenTelemetry (traces, métriques, logs structurés) et Sentry (suivi des erreurs, surveillance des performances). Elle inclut un système de fournisseurs modulables pour le stockage (mémoire par défaut, système de fichiers, AWS S3, Google Cloud Storage), les notifications (Telegram, Discord), la planification (cron avec des stratégies de chevauchement telles que skip, queue, parallel) et le reporting sur serveur distant. Elle prend également en charge les fonctions de tâches asynchrones, les définitions d'étapes basées sur des classes, les callbacks de tâches et de workflow, ainsi qu'une gestion d'erreurs configurable (arrêt à la première défaillance ou poursuite de l'exécution des tâches restantes).
Dotflow fournit une interface CLI pour exécuter, planifier et gérer des workflows sans écrire de code supplémentaire, et prend en charge le déploiement en une commande sur plus de 34 plateformes cloud, notamment AWS Lambda, AWS ECS Fargate, Google Cloud Run, Alibaba Cloud Function Compute, Kubernetes, Docker et GitHub Actions. Les utilisateurs peuvent étendre ses fonctionnalités en implémentant des fournisseurs personnalisés pour le stockage, la journalisation, le traçage, les métriques et d'autres capacités via des classes de base abstraites.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.