2 repositorios
Atomic locks using a central store to prevent duplicate task execution across multiple server instances.
Distinct from Atomic Task Locks: Distinct from Atomic Task Locks: specifically focuses on multi-server synchronization rather than single-process race conditions.
Explore 2 awesome GitHub repositories matching data & databases · Distributed Task Locks. Refine with filters or upvote what's useful.
Goravel es un scaffold de desarrollo y framework completo para construir aplicaciones web, APIs REST y servicios gRPC utilizando el lenguaje de programación Go. Implementa una arquitectura modelo-vista-controlador y proporciona un kit de herramientas integral para servidores y clientes de llamadas a procedimientos remotos de alto rendimiento. El framework se distingue por su extenso ecosistema integrado, que incluye un mapeador objeto-relacional fluido para la gestión de bases de datos y un kit de herramientas de interfaz de línea de comandos dedicado para la automatización administrativa y el scaffolding de proyectos. Cuenta con una abstracción de servicios basada en controladores que permite a los desarrolladores intercambiar backends de almacenamiento, caché y sesiones sin alterar la lógica de la aplicación. La plataforma cubre una amplia superficie de capacidades de aplicación, incluyendo el procesamiento de tareas asíncronas con colas distribuidas, gestión de identidad segura mediante autenticación basada en tokens y una capa de seguridad robusta con cifrado y control de acceso. También proporciona herramientas para la localización de contenido, renderizado de plantillas e infraestructura de pruebas automatizada con mocking de dependencias.
Uses atomic locking via a central cache to ensure scheduled jobs run on only one server instance.
ShedLock es un gestor de bloqueos distribuidos diseñado para evitar que las tareas programadas se ejecuten simultáneamente a través de múltiples nodos en un sistema distribuido. Actúa como un coordinador de tareas que asegura una ejecución única de trabajos temporizados gestionando los tiempos de vida de los bloqueos y utilizando proveedores de bloqueo externos. El sistema utiliza proveedores respaldados por bases de datos para almacenar estados de ejecución de tareas en bases de datos externas, sincronizando bloqueos a través de nodos de cluster activos. Incluye un sincronizador tolerante a la deriva del reloj que maneja discrepancias de tiempo entre nodos distribuidos mediante el uso de marcas de tiempo compartidas y tiempos de vida de bloqueo flexibles. El proyecto proporciona mecanismos para la exclusión mutua de recursos compartidos y la coordinación de tareas entre múltiples nodos. Admite la expiración automática de bloqueos para prevenir deadlocks durante fallos de nodos y mantiene tiempos mínimos de retención de bloqueo para asegurar que las tareas se completen antes de que se libere un bloqueo. La implementación utiliza una abstracción agnóstica del proveedor para desacoplar la lógica de bloqueo de varios backends de bases de datos.
Implements a provider-agnostic abstraction to store task execution states in various external databases for cross-node synchronization.