2 Repos
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 ist ein voll ausgestattetes Entwicklungs-Scaffold und Framework für die Erstellung von Webanwendungen, REST-APIs und gRPC-Diensten mit der Programmiersprache Go. Es implementiert eine Model-View-Controller-Architektur und bietet ein umfassendes Toolkit für leistungsstarke RPC-Server und -Clients. Das Framework zeichnet sich durch sein umfangreiches integriertes Ökosystem aus, das einen flüssigen Object-Relational-Mapper (ORM) für die Datenbankverwaltung und ein dediziertes CLI-Toolkit für administrative Automatisierung und Projekt-Scaffolding umfasst. Es verfügt über eine treiberbasierte Dienstabstraktion, die es Entwicklern ermöglicht, Speicher-, Cache- und Session-Backends auszutauschen, ohne die Anwendungslogik zu ändern. Die Plattform deckt ein breites Spektrum an Anwendungsfunktionen ab, darunter asynchrone Aufgabenverarbeitung mit verteilten Queues, sicheres Identitätsmanagement mittels tokenbasierter Authentifizierung sowie eine robuste Sicherheitsschicht mit Verschlüsselung und Zugriffskontrolle. Sie bietet zudem Tools für Content-Lokalisierung, Template-Rendering und eine automatisierte Testinfrastruktur mit Dependency-Mocking.
Uses atomic locking via a central cache to ensure scheduled jobs run on only one server instance.
ShedLock ist ein Manager für verteilte Locks, der darauf ausgelegt ist, zu verhindern, dass geplante Tasks gleichzeitig über mehrere Nodes in einem verteilten System hinweg ausgeführt werden. Er fungiert als Task-Koordinator, der eine einmalige Ausführung zeitgesteuerter Jobs sicherstellt, indem er Lock-Lebensdauern verwaltet und externe Lock-Anbieter nutzt. Das System verwendet datenbankgestützte Anbieter, um Task-Ausführungszustände in externen Datenbanken zu speichern und Locks über aktive Cluster-Nodes hinweg zu synchronisieren. Es beinhaltet einen Clock-Drift-toleranten Synchronisierer, der Zeitdiskrepanzen zwischen verteilten Nodes durch die Verwendung geteilter Zeitstempel und flexibler Lock-Lebensdauern handhabt. Das Projekt bietet Mechanismen für den gegenseitigen Ausschluss geteilter Ressourcen und die Task-Koordination über mehrere Nodes hinweg. Es unterstützt den automatischen Lock-Ablauf, um Deadlocks bei Node-Abstürzen zu verhindern, und hält minimale Lock-Haltezeiten ein, um sicherzustellen, dass Tasks abgeschlossen werden, bevor ein Lock freigegeben wird. Die Implementierung verwendet eine anbieteragnostische Abstraktion, um die Locking-Logik von verschiedenen Datenbank-Backends zu entkoppeln.
Implements a provider-agnostic abstraction to store task execution states in various external databases for cross-node synchronization.