Ho un'applicazione ruby on rails in cui sto cercando di trovare un modo per eseguire del codice ogni pochi secondi.task periodico delle rotaie
Ho trovato molte informazioni e idee utilizzando cron, o implementazioni simili a cron, ma queste sono solo accurate fino all'ultimo minuto e/o richiedono strumenti esterni. Voglio interrompere l'attività ogni 15 secondi o giù di lì, e voglio che sia completamente autonomo all'interno dell'applicazione (se l'app si ferma, le attività si fermano e nessuna configurazione esterna).
Viene utilizzato per la generazione in background di dati della cache. Ogni pochi secondi, l'attività assembla alcuni dati e quindi li archivia in una cache che viene utilizzata da tutte le richieste dei client. L'attività è piuttosto lenta, quindi è necessario eseguirla in background e non bloccare le richieste del client.
Sono abbastanza nuovo da rubino, ma ho un forte background perl, e il modo in cui risolverei questo sarebbe quello di creare un gestore di intervalli timer & che forca, esegue il codice, e quindi esce quando fatto.
Potrebbe essere ancora più semplice simulare una richiesta del client e avere la stessa forcella del controller delle guide. In questo modo potrei avviare l'attività colpendo l'URI per questo (sebbene dal momento che l'attività verrà eseguita ogni pochi secondi, dubito che ne avrò mai bisogno, ma potrebbe avere un uso futuro). Anche se sarebbe banale il semplice richiamo del controller, qualunque sia il metodo chiamato dall'utilità di pianificazione periodica (una volta che ne ho uno).
Alla fine ho appena creato un semplice strumento che si avvia quando viene avviata l'app per rails e viene eseguito periodicamente un elenco di attività. Ogni ciclo attraverso esso controlla se il genitore è ancora vivo e si chiude se non. – Patrick