Ho utilizzato Sidekiq con successo per eseguire processi in background avviati dalle azioni dell'utente in un'applicazione Rails 3.2. La mia particolare applicazione comporta l'invio e la ricezione di dati da e fonti esterne tramite un'API di terze parti.Come posso eseguire un lavoro in background continuo con Sidekiq?
Ho bisogno di mantenere i dati sincronizzati con questa fonte esterna controllando continuamente per ciascun utente se ci sono dati disponibili per il download.
Tutti i miei lavori in background finora sono avviati dall'utente come ho detto sopra. La mia domanda è, se voglio controllare continuamente per l'esistenza di dati esterni per ciascun utente, in un ciclo while
Mi immagino:
# pseudocode
while true
for user in User.active
data = user.get_data
next if data.blank?
UserDataWorker.perform_async(user.id)
end
end
poi Dove metto il codice di cui sopra? Mi confondo su come generare un'attività continua. Non voglio mettere il codice in un lavoratore Sidekiq, perché sarà solo un lavoro che non ha mai completato. O dovrei farlo?
Non voglio inserirmi in un'attività di rake, perché in che modo è possibile monitorare l'attività di rake? Tutto ciò che ho letto su Sidekiq sembra indicare un lavoratore che esegue un'attività che è finita e che può essere completata o errata. Apprezzo qualsiasi aiuto tu possa offrire.
come utilizzare il cron job? – mkk
Ci ho pensato, ma cron è più orientato alle attività e quello che sto cercando è più simile a un demone. – AKWF