2013-06-28 10 views
6

私はrakeタスクを実行するたびにgemを使用しています。 rakeタスクを実行すると、開発環境で実行されますが、スケジュールされた時間に実行されると、実稼働環境を参照します。 開発環境でスケジュールされたレーキタスクを強制的に実行するにはどうすればよいですか。 私が理解するように、RAILS_ENV変数を使用する必要がありますが、どこに配置するのか把握することはできません。 私は、いつでもここに宝石とは関係がないと思います。どのようにrakeタスクを開発環境下で実行するように強制するかgem

#!/bin/sh 

export RAILS_ENV=development 

rake task:name... 

これは、次のことができます。

RAILS_ENV=development rake task:name... 

あなたはまた、あなたのためにこれを行うには小さなスクリプトを書くことができます:あなたはそれを実行して、あなたが通常の環境を上書きすることができます任意のbash型シェルで

答えて

6

、あなたは環境を指定することができますが、スケジュールされたタスクを実行しなければなりたいと思います。また

# config/schedule.rb 
set :environment, 'development' 

、あなたは、ジョブごとに環境を設定することができます。

# config/schedule.rb 
every 1.day do 
    runner 'Model.task', :environment => 'development' 
    runner 'Model.task', :environment => 'production' 
end 
+0

を期間が経過するのを待たずにスケジューラーにあるタスクを実行できますか? –

+1

タスクを手動で(つまり、スケジューラの外で)実行できるかどうか尋ねていますか?もしそうなら、はい。しかし、Whenever宝石を利用しようとしているなら、必然的に何らかの時間間隔を設定する必要があります - AFAIK、最小間隔は1秒です。それ以外の場合は、あなたは継続的かつ同時に、あなたの仕事を実行しています...実際には実現可能ではありません。 – zeantsoi

12

必要に応じて他のシェルに適合させることができます。 schedule.rb

関連する問題