- Shipped
- 4 settembre 2026 alle ore 20:30 UTC
- Author
- Kamo
- Commit
- 7fc9377
Non c'è ShedLock ovunque su questa piattaforma e non c'è mai stato. Tutti 97 @Scheduled spazza attraverso 18 servizi sono corretti solo perché ogni servizio funziona esattamente un pod. Scala qualsiasi di loro e la spazzata corre due volte un segno — due promemoria di riunione in una casella di posta di un membro, due chat-email Avviso, due passi per un periodo di fatturazione. Quei dispiegamenti mono-replica non erano semplicemente un-scaled; il conteggio replica era cuscinetto di carico, e il codice lo dice già in tre posti. E' un corpo su una capsula. Una chiamata per l'esplicita', non un'anonimato. @SingletonTask accanto a @Scheduled è il design evidente e è una trappola qui: sarebbe applicato da un proxy AOP, e un proxy viene bypassato completamente quando un metodo è raggiunto dall'interno dello stesso fagiolo — il problema di autoinvocazione primavera questo codebase è stato catturato da cinque volte separate. Una spazzata che silenziosamente ha perso la sua serratura e ha corso su ogni capsula è che stesso fallimento, e nulla lo rivelerebbe fino a quando un cliente ha contato le loro email. Prendere la serratura chiamarlo non può essere bypassato da come il metodo è stato raggiunto, e si aggrappa. REDIS, non il DATIBASE. Un tavolo di blocco ha bisogno di DDL e DDL su questo cluster rende ogni risposta di servizio 500 'schema versione mismatch' per ~15 minuti mentre Hikari collegamenti età fuori. Pagare un outage piattaforma-wide per installare il macchinario che impedisce outage su piattaforma è un cattivo commercio quando Redis è già schierato. I bambini sono chiusi. Se Redis è irraggiungibile il compito è saltato, non eseguito: per lavoro che invia e-mail o muove i soldi, correre due volte è peggio di non correre, e le prossime penne. Il rilascio è comparare e cancellare lo script in modo che un corpo che ha superato il suo contratto di locazione non può eliminare una serratura un altro pod ha dal preso, e l'eccedenza è collegato a ERROR perché nient'altro lo rivelerebbe. Dove un servizio non ha Redis il fallback corre sempre il corpo — esattamente quello che il codice fa oggi, così adottando questo non cambia mai comportamento da solo — e avverte all'avvio. La guardia manifesta in CI rifiuta repliche > 1 per un servizio in quello stato. 7 test; suite completa 2710 verde.