Eine verteilte Schleuse, so dass ein geplanter Sweep eine zweite Replik überstehen kann

Featurekamo-shared-library
Shipped
4. September 2026 um 20:30 UTC
Author
Kamo
Commit
7fc9377

Es gibt nirgendwo ShedLock auf dieser Plattform und es hat noch nie gegeben. Alle 97 @Scheduled Sweeps über 18 Dienste sind nur richtig, weil jeder Dienst läuft genau eine pod. Scale eine von sie und der Sweep läuft zweimal ein Tick - zwei Meeting-Erinnerungen im Posteingang eines Mitglieds, zwei Chat-EMail Ausrufe, zwei Durchgänge über einen Abrechnungszeitraum. Diese Single-Replik-Einsätze waren nicht nur unscaled; die Replikzahl war Lastlager, und der Code sagt so schon an drei Stellen. ************ Vermietung, Körper) läuft eine Karosserie auf genau einer Hülse. AN EXPLICIT CALL, NICHT AN ANNOTATION. @SingletonTask neben @Scheduled ist das offensichtliche Design und es ist eine Falle hier: es würde von einem AOP-Proxy angewendet werden, und ein Proxy wird vollständig umgangen, wenn eine Methode wird von der gleichen Ban aus erreicht - das Frühlings-Selbst-Berufungsproblem dieser Codebase wurde gefangen von fünf verschiedenen Zeiten. Ein Sweep, der lautlos seine Sperre verlor und auf jeder Hülse lief, ist, dass der gleiche Fehler, und nichts würde es offenbaren, bis ein Kunde ihre E-Mails gezählt. Die Sperre von Aufruf kann nicht durch, wie die Methode erreicht wurde, umgangen werden, und es grepsiert. REDIS, NICHT DER DATABASE. Ein Schlosstisch braucht DDL, und DDL auf diesem Cluster macht jede Service-Antwort 500 'schema Version Mismatch' für 15 Minuten, während Hikari Verbindungen altern. Bezahlen eines Plattform-weiter Ausfall, um die Maschinen, die Plattform-weite Ausfälle verhindert installieren ist ein schlechtes Handwerk wenn Redis bereits eingesetzt wird. FAILS GESCHLOSSEN. Wenn Redis nicht erreichbar ist, wird die Aufgabe übersprungen, nicht ausgeführt: für die Arbeit, die E-Mails sendet oder bewegt Geld, zweimal laufen ist schlimmer als nicht laufen, und die nächste Zecken retries. Release ist ein vergleichen-und-löschen Skript so ein Körper, der seinen Mietvertrag überlaufen kann nicht löschen Sie eine Sperre eine andere pod hat da genommen, und Überlauf wird bei ERROR protokolliert, weil nichts anderes würde es offenbaren. Wo ein Dienst keine Redis hat, führt der Fallback der Körper immer - genau das, was der Code heute tut, so die Annahme ändert nie Verhalten auf eigene Faust - und warnt bei der Gründung. Die manifeste Wache in CI verweigert Repliken 1 für einen Dienst in diesem Zustand. 7 Tests; volle Suite 2710 grün.

All changes

Wie, was Sie sehen Versand?

Jedes dieser Updates landet automatisch in Ihrem Arbeitsbereich. Starten Sie frei und beobachten Sie es Woche für Woche wachsen.

Free Forever startenPreisgestaltung anzeigen