Sto usando Sidekiq nella mia app per rotaie per accodare 50k + lavori alla volta. La dimensione della piscina è impostata su 9.La concorrenza con Sidekiq sta causando alcuni problemi
I lavori sono tutti correlati e fanno la stessa cosa. Abbiamo un altro modello che ha un contatore su di esso. Durante ogni lavoro, controlliamo se quel modello ha una colonna con valore superiore a 200. Se è superiore a 200, creiamo un'altra istanza di quel modello con valore = 0 e proseguo con i lavori. Tuttavia, poiché abbiamo 9 lavori in esecuzione alla volta, tutti e 9 i lavori leggono il valore di quella colonna per essere maggiore di 200 allo stesso tempo e tutti creano nuove istanze, il che non è corretto.
Qual è il modo migliore per risolvere questo problema? Fondamentalmente vogliamo che tutti i lavori leggano dal valore più aggiornato.
Quindi, mentre svolgo il lavoro svolto da personale, E ogni volta controllo il valore e creo un nuovo modello? Forse puoi creare un lavoro separato per questo personale? 8 lavori fanno il loro lavoro e un lavoro controlla solo questo valore e crea una nuova istanza del necessario? – denys281
Ogni lavoro verifica un valore nel DB e solo una volta ogni tanto scopre che è necessario creare un nuovo modello. Tuttavia, quando succede, tutti i lavori attualmente in esecuzione scoprono che è necessario creare una nuova modal in una volta e crearne 8-10. Dovrebbe creare solo 1. –