2010-12-13 74 views
5

J'essaie d'utiliser whenever gem dans mon application, mais je ne suis pas en mesure d'exécuter la commande Rake dans schedule.rb.Problème d'utilisation à chaque fois gem

erreur qui vomit est

/bin/bash: rake: command not found 

J'utilise aussi Bundler si toutes mes pierres précieuses sont figées dans l'application. Essayez d'utiliser 'command' au lieu de rake.

Répondre

4

Est-ce que rake est quelque part atypique, comme/usr/local/bin? Essayez d'ajouter ceci à schedule.rb:

env :PATH, '/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin' 
0

Mon rake est dans/usr/local/bin et je n'arrive pas à comprendre comment le faire fonctionner non plus. Voici donc un exemple d'une commande plutôt dans schedule.rb:

every 5.minutes do 
    command "cd " + `pwd`.chomp + " && RAILS_ENV=#{environment} /usr/local/bin/rake rakefile:rakemethod" 
end 

Notez que vous devez également passer dans un environnement dans cet exemple. Je pense que vous le faites simplement avec 'quand --update_crontab --set environnement = beta' quand vous appelez schedule.rb.

Je l'ai fait capistrano en utilisant les recettes de capistrano dans la gem de chaque fois (voir lib dirs sous la source every). Je dois définir le paramètre where_environment dans mon script Capistrano.

chaque fois que je pourrais produire par défaut donc je voudrais juste jouer avec et voir. En d'autres termes, vous n'avez pas besoin de RAILS_ENV = # {environnement} si vous ne faites cela qu'en production. J'ai plusieurs environnements de transfert, donc je passe dans l'environnement pour aider le script.

Si seulement je pouvais spécifier un répertoire rake différent pour que cela fonctionne avec/usr/local/bin/rake! Quelqu'un aide-t-il sur ce front?