Osservando il lavoro di seguito, suppongo che il lavoro venga eseguito su una coda low_priority
.ActiveJob dispone di code con priorità specifica?
class GuestsCleanupJob < ActiveJob::Base
queue_as :low_priority
#....
end
Concordo con questo, ma questo è solo il nome della coda corretta? In realtà non ha nulla a che fare con la priorità. Ad esempio, se ho creato un lavoro con una coda denominata :my_queue
, si tratterebbe di avere la stessa priorità di una coda :low_priority
.
Dalla documentazione non sono stato in grado di trovare nulla che indica che posso dare la priorità ai lavori che sono in coda. So che delayed_jobs ha questa funzionalità, ma non l'ho trovata in active_job.
Sì, questo ha un senso, ma delayed_job e sidekiq entrambe le code di supporto e la priorità e si può impostare questo ad un livello di lavoro. Il lavoro attivo supporta questo se si utilizza l'adattatore delayed_job o sidekiq? Sembra che tu stia dicendo sì ... ma nessuno della documentazione in realtà aiuta. Ho già visto i riferimenti che hai aggiunto prima di pubblicare questa domanda, ma non ho trovato nulla ... forse mi manca qualcosa? –
Per questo è necessario leggere la documentazione dell'adattatore. ActiveJob è un'astrazione. – dimakura
Lo capisco. Ho letto la documentazione - sto usando delayed_jobs e puoi impostare la priorità di un lavoro su un delayed_job ad esempio 'handle_asynchronously: send_mailer,: priority => 20'.con sidekiq posso vedere che è possibile dato che hai impostato le code e la priorità in un file di configurazione. Il lavoro inoltrato non sembra avere questo. La mia domanda è come usare l'astrazione che è ActiveJob per impostare la priorità ... è possibile tramite ActiveJob o devo usare delayed_job? Guardando l'adattatore delayed_job in ActiveJob questo non sembra possibile. Non sono sicuro di cos'altro dire per essere più chiari. –