3 dépôts
Systems that ensure scheduled tasks execute exactly once across multiple application instances using shared state or locking mechanisms.
Distinct from Instance Scheduling Policies: Distinct from Instance Placements Across Members: focuses on coordinating the execution of application-level tasks across nodes, not the physical placement of containers or VMs.
Explore 3 awesome GitHub repositories matching devops & infrastructure · Distributed Task Coordinators. Refine with filters or upvote what's useful.
FreeSql is a .NET object-relational mapper and data access layer that translates object-oriented code into SQL for multiple relational database providers. It functions as a fluent SQL query builder and database schema synchronizer, allowing developers to align database table and index structures with entity class definitions. The framework is specifically optimized for .NET Native AOT to ensure reduced memory footprints and faster startup times. It includes a database traffic manager to distribute load through read-write splitting, dynamic table sharding, and tenant-based data isolation. Bro
Coordinates task execution across multiple application instances to prevent duplicate work using shared state.
ShedLock est un gestionnaire de verrouillage distribué conçu pour empêcher les tâches planifiées de s'exécuter simultanément à travers de multiples nœuds dans un système distribué. Il agit comme un coordinateur de tâches qui garantit une exécution unique des travaux planifiés en gérant les durées de vie des verrous et en utilisant des fournisseurs de verrouillage externes. Le système utilise des fournisseurs basés sur une base de données pour stocker les états d'exécution des tâches dans des bases de données externes, synchronisant les verrous à travers les nœuds de cluster actifs. Il inclut un synchroniseur tolérant à la dérive d'horloge qui gère les écarts de temps entre les nœuds distribués via l'utilisation d'horodatages partagés et de durées de vie de verrou flexibles. Le projet fournit des mécanismes pour l'exclusion mutuelle des ressources partagées et la coordination des tâches multi-nœuds. Il prend en charge l'expiration automatique des verrous pour prévenir les blocages lors des plantages de nœuds et maintient des durées de maintien de verrou minimales pour garantir que les tâches se terminent avant qu'un verrou ne soit libéré. L'implémentation utilise une abstraction agnostique au fournisseur pour découpler la logique de verrouillage de divers backends de base de données.
Provides a coordination system that ensures scheduled tasks execute exactly once across multiple application instances using shared locking mechanisms.
Cette bibliothèque fournit un framework de planification de tâches pour les applications Node.js, permettant l'automatisation d'opérations récurrentes en utilisant la syntaxe cron standard. Elle fonctionne comme un gestionnaire de tâches en arrière-plan qui maintient un registre d'état des jobs, permettant l'inspection, la modification et le contrôle du cycle de vie des opérations planifiées au moment de l'exécution. Le projet se distingue par son support des environnements distribués et de la gestion des ressources. Il inclut des mécanismes pour coordonner les tâches sur plusieurs instances d'application, garantissant que le travail planifié s'exécute exactement une fois pour éviter les chevauchements ou les contentions de ressources. Pour maintenir la réactivité de l'application, il peut décharger la logique intensive vers des processus enfants isolés, empêchant la boucle d'événements principale de se bloquer lors d'une exécution lourde. La bibliothèque offre une suite complète d'outils d'observabilité et de configuration, incluant la surveillance du cycle de vie pilotée par les événements, la planification tenant compte des fuseaux horaires et la gestion du timing d'exécution. Elle fonctionne comme un runtime sans dépendance, ce qui minimise la surface d'attaque de sécurité et simplifie l'intégration dans des environnements restreints.
Run a scheduled task exactly once across multiple instances using a shared backend while automatically failing over if the elected runner becomes unavailable.