2010-07-21 3 views
2

Existe-t-il un moyen d'exécuter des processus à partir de rails script/console en arrière-plan? J'ai un script lib qui prendra environ deux jours à s'exécuter et je veux le faire fonctionner en arrière-plan.ruby ​​on rails processus de la console en arrière-plan

Quelque chose comme:

script/console 

Puis:

>> load 'script.rb' & 

Dans la ligne de commande que je venais de faire:

$ command & 

Je ne trouve: http://backgroundrb.rubyforge.org/ mais cela semblait exagéré pour juste cette tâche unique.

J'ai aussi essayé:

$ ruby data_importer2.rb & 

Cela n'importe pas la substance d'enregistrement actif si (erreur: non initialisée ActiveRecord constant)

Merci!

Répondre

6

Vous pouvez le faire avec le coureur de script au lieu de la console:

./script/runner script.rb & 
2

Vous pouvez utiliser script/runner, ou si vous avez besoin de l'exécuter à nouveau à un moment donné, la meilleure façon serait d'envelopper dans une tâche de rake.

2
$ script/console 
>> fork { load 'script.rb' } 
>> Process.detach 
>> # ...