Uso il lavoro in ritardo in una configurazione in cui eseguo più worker. Per la mia domanda, non ha molta importanza, ma diciamo che eseguo 10 lavoratori (facendo questo in modalità di sviluppo al momento).Più processi di lavoro in ritardo che iniziano lo stesso lavoro
Il problema che sto avendo è che due diversi lavoratori a volte iniziano a lavorare sullo stesso lavoro, chiamando il metodo perform sul mio oggetto lavoro.
Al meglio della mia comprensione differita Lavoro sta usando il blocco pessimistico per evitare che ciò accada, ma sembra che a volte hanno ancora abbastanza tempo per bloccare rubare il lavoro prima che il primo lavoratore ha il tempo per bloccarlo in realtà.
Sto solo chiedendo se qualcun altro ha riscontrato questo problema, o se è il mio setup che si comporta male. Sto usando Postrgres e questo accade sia nella mia macchina di sviluppo che su Heroku, dove l'ho ospitato.
Cercherò di aggirarlo nei miei lavori, ma è ancora un po 'problematico che ciò accada. Idealmente, non succederebbe mai che un lavoro in ritardo lavori sullo stesso lavoro da due processi.
Grazie!
Vedo qualcosa di simile. Non sono stato in grado di rintracciarlo completamente, ma sembra che tra il controllo di un lucchetto e il blocco, molti operatori stiano afferrando ed eseguendo il lavoro. –
Devo dire che ho trovato che l'impostazione '' 'Delayed :: Worker.read_ahead = 1''' in un inizializzatore sembrava mitigare il problema. –
Avendo lo stesso problema con Resque, non ho trovato una soluzione –