Alternativa a rake per lanciare dei task in cron

Ciao,

premesso che io mi occupo della parte sistemi e non sviluppo
direttamente, quindi potrei dire delle imprecisioni, abbiate pazienza.

Un nostro software, che utilizza Ruby 1.9.x e Rails 3.2.x deve eseguire
dei task in cron ogni 5 minuti. Questi task appesantiscono la CPU del
server non tanto per i compiti che loro stessi eseguono ma per via del
fatto che rake molto pesante a caricare.

Vorrei capire che possibili alternative ci sono per lanciare questi cron
molto frequenti.

E’ possibile ottimizzare l’avvio di rake?

O forse sbagliato proprio il suo utilizzo in questo contesto e
dobbiamo valutare soluzioni diverse?

Grazie per ogni consiglio/suggerimento

Alessio C. is:
@ ILS → http://www.linux.it/~alessice/
on LinkedIn → http://www.linkedin.com/in/alessice
Assistenza Sistemi GNU/Linux → http://www.cecchi.biz
Cloud Email Hosting → http://www.qboxmail.com
@ PLUG → ex-Presidente, adesso senatore a vita,
http://www.prato.linux.it

2013/12/9 Alessio C. [email protected]:

Un nostro software, che utilizza Ruby 1.9.x e Rails 3.2.x deve eseguire dei
task in cron ogni 5 minuti. Questi task appesantiscono la CPU del server non
tanto per i compiti che loro stessi eseguono ma per via del fatto che rake
molto pesante a caricare.

Ciao, molto probabilmente questi task sono pesanti perch caricano
tutto Rails. A parte aggiornare Ruby, non credo tu possa fare molto a
livello sistemistico per ridurre i tempi di startup.

On Monday, December 9, 2013 at 8:50 AM, Alessio C. wrote:

Vorrei capire che possibili alternative ci sono per lanciare questi cron
molto frequenti.

E’ possibile ottimizzare l’avvio di rake?

O forse è sbagliato proprio il suo utilizzo in questo contesto e
dobbiamo valutare soluzioni diverse?

Grazie per ogni consiglio/suggerimento
Ciao Alessio,
puoi provare Clockwork [1]. Il processo resta attivo ed esegue i task
con frequenza secondo configurazione.
In alternativa, se avete già un’infrastruttura Sidekiq in piedi, c’è
Sidetiq [2], che estende appunto Sidekiq con la stessa funzionalità.

Federico

[1] https://github.com/tomykaira/clockwork
[2] GitHub - endofunky/sidetiq: NO LONGER MAINTAINED Recurring jobs for Sidekiq

Magari dico una boiata, ma come ipotesi esoterica potrebbero esserci
anche
Zeus [0] o Spring [1] :slight_smile:
Certo è che il già menzionato Sidekiq e il non uso di Rails quando non
serve sono ottime indicazioni :slight_smile:

[0] GitHub - burke/zeus: Boot any rails app in under a second.
[1] GitHub - rails/spring: Rails application preloader

2013/12/9 Fabrizio R. [email protected]

Cerca di capire se il comando rake che lanci pu evitare di caricare
l’environment di Rails. Quasi sempre questo necessario, controlla per
che non sia una leggerezza nell’impostazione, magari caricate :task =>
:environment quando non serve. Ad esempio rake assets:clean non richiede
il
caricamento dell’environment, ma di fatto non fa altro che cancellare
dei
file in una directory.
Il consiglio di modificare l’architettura e usare una cosa tipo Sidekiq
ottimo, io farei cos.

2013/12/9 Stefano P. [email protected]

Noi usiamo GitHub - resque/resque-scheduler: A light-weight job scheduling system built on top of Resque su un paio di
progetti.


Luca P.
[email protected]

Grazie Maurizio per i suggerimenti, ma per questi cron pi che
“precaricare” preferirei alleggerire :slight_smile:

Adesso cerco di capire se viene caricato Rails e se questo serve.

Grazie a tutti per i suggerimenti.

Ciao

Il 09/12/2013 10:01, maurizio de magnis ha scritto:

2013/12/9 Stefano P. [email protected]

[email protected]
http://lists.ruby-it.org/mailman/listinfo/ml


Alessio C. is:
@ ILS → http://www.linux.it/~alessice/
on LinkedIn → http://www.linkedin.com/in/alessice
Assistenza Sistemi GNU/Linux → http://www.cecchi.biz
Cloud Email Hosting → http://www.qboxmail.com
@ PLUG → ex-Presidente, adesso senatore a vita,
http://www.prato.linux.it

Il 09/12/2013 09:11, Federico R. ha scritto:

puoi provare Clockwork [1]. Il processo resta attivo ed esegue i task con
frequenza secondo configurazione.
In alternativa, se avete già un’infrastruttura Sidekiq in piedi, c’è Sidetiq
[2], che estende appunto Sidekiq con la stessa funzionalità.

Federico

[1] https://github.com/tomykaira/clockwork
[2] GitHub - endofunky/sidetiq: NO LONGER MAINTAINED Recurring jobs for Sidekiq

Ciao Federico,

usiamo Resque per la gestione dei processi quindi escluderei l’uso di
Sidetiq sebbene sarebbe una soluzione ideale.

Rimane invece valida la possibilità di utilizzare Clockwork.

Soluzioni simili a Sidetig per Resque ne conoscete?


Alessio C. is:
@ ILS → http://www.linux.it/~alessice/
on LinkedIn → http://www.linkedin.com/in/alessice
Assistenza Sistemi GNU/Linux → http://www.cecchi.biz
Cloud Email Hosting → http://www.qboxmail.com
@ PLUG → ex-Presidente, adesso senatore a vita,
http://www.prato.linux.it