3 repository-uri
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 este un mapper obiect-relațional (ORM) .NET și un strat de acces la date care traduce codul orientat pe obiecte în SQL pentru mai mulți furnizori de baze de date relaționale. Funcționează ca un builder fluent de query-uri SQL și sincronizator de schemă de bază de date, permițând dezvoltatorilor să alinieze structurile tabelelor și indicilor bazei de date cu definițiile claselor de entități. Framework-ul este optimizat special pentru .NET Native AOT pentru a asigura amprente de memorie reduse și timpi de pornire mai rapizi. Include un manager de trafic al bazei de date pentru a distribui load-ul prin read-write splitting, sharding dinamic al tabelelor și izolare a datelor bazată pe chiriași (tenant). Capabilitățile largi includ ingestia de date de înaltă performanță folosind mecanisme de bulk copy specifice furnizorului, interogare avansată cu funcții de fereastră și CTE-uri recursive, și monitorizare bazată pe AOP pentru auditarea modificărilor de date. Sistemul oferă, de asemenea, instrumente de gestionare a schemei pentru migrări automate și utilitare de dezvoltare pentru generarea claselor de entități din metadatele bazei de date.
Coordinates task execution across multiple application instances to prevent duplicate work using shared state.
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.
Provides a coordination system that ensures scheduled tasks execute exactly once across multiple application instances using shared locking mechanisms.
Această bibliotecă oferă un framework de programare a sarcinilor pentru aplicații Node.js, permițând automatizarea operațiunilor recurente folosind sintaxa cron standard. Funcționează ca un manager de sarcini în fundal care menține un registru cu stare (stateful) al joburilor, permițând inspecția la runtime, modificarea și controlul ciclului de viață al operațiunilor programate. Proiectul se distinge prin suportul pentru medii distribuite și gestionarea resurselor. Include mecanisme pentru a coordona sarcinile între mai multe instanțe de aplicație, asigurând că munca programată se execută exact o dată pentru a preveni suprapunerea sau conflictul de resurse. Pentru a menține responsivitatea aplicației, poate descărca logica intensivă în resurse în procese copil izolate, prevenind blocarea main event loop-ului în timpul execuției grele. Biblioteca oferă o suită cuprinzătoare de instrumente de observabilitate și configurare, inclusiv monitorizarea ciclului de viață bazată pe evenimente, programare conștientă de fusul orar și gestionarea timpului de execuție. Funcționează ca un runtime fără dependențe, ceea ce minimizează suprafața de atac de securitate și simplifică integrarea în medii restricționate.
Run a scheduled task exactly once across multiple instances using a shared backend while automatically failing over if the elected runner becomes unavailable.