2 repository-uri
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 este un scaffold de dezvoltare complet și un framework pentru construirea de aplicații web, API-uri REST și servicii gRPC folosind limbajul de programare Go. Implementează o arhitectură model-view-controller și oferă un set de instrumente cuprinzător pentru servere și clienți de tip remote procedure call (RPC) de înaltă performanță. Framework-ul se distinge prin ecosistemul său integrat extins, care include un ORM (object-relational mapper) fluent pentru gestionarea bazelor de date și un toolkit CLI dedicat pentru automatizarea administrativă și scaffolding-ul proiectelor. Dispune de o abstractizare a serviciilor bazată pe drivere, care permite dezvoltatorilor să schimbe backend-urile de stocare, cache și sesiune fără a altera logica aplicației. Platforma acoperă o suprafață largă de capabilități pentru aplicații, inclusiv procesarea asincronă a sarcinilor cu cozi distribuite, gestionarea securizată a identității prin autentificare bazată pe token-uri și un strat robust de securitate cu criptare și control al accesului. Oferă, de asemenea, instrumente pentru localizarea conținutului, randarea de template-uri și o infrastructură de testare automatizată cu dependency mocking.
Uses atomic locking via a central cache to ensure scheduled jobs run on only one server instance.
ShedLock este un manager de lock-uri distribuit conceput pentru a preveni rularea concurentă a sarcinilor programate pe mai multe noduri într-un sistem distribuit. Acționează ca un coordonator de sarcini care asigură execuția unică a joburilor temporizate prin gestionarea duratei de viață a lock-urilor și utilizarea furnizorilor externi de lock-uri. Sistemul utilizează furnizori bazați pe baze de date pentru a stoca stările de execuție a sarcinilor în baze de date externe, sincronizând lock-urile pe nodurile active ale clusterului. Include un sincronizator tolerant la clock-drift care gestionează discrepanțele de timp între nodurile distribuite prin utilizarea timestamp-urilor partajate și a duratelor de viață flexibile ale lock-urilor. Proiectul oferă mecanisme pentru excluderea reciprocă a resurselor partajate și coordonarea sarcinilor pe mai multe noduri. Suportă expirarea automată a lock-urilor pentru a preveni deadlocks-urile în timpul prăbușirii nodurilor și menține durate minime de deținere a lock-ului pentru a asigura finalizarea sarcinilor înainte ca un lock să fie eliberat. Implementarea utilizează o abstractizare agnostic-furnizor pentru a decupla logica de locking de diversele backend-uri de baze de date.
Implements a provider-agnostic abstraction to store task execution states in various external databases for cross-node synchronization.