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] https://github.com/tobiassvn/sidetiq

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] https://github.com/burke/zeus
[1] https://github.com/jonleighton/spring

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 https://github.com/resque/resque-scheduler 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] https://github.com/tobiassvn/sidetiq

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

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs