2011-06-23 8 views
3

rails rakeタスクからモデルオブジェクトにアクセスするにはどうすればよいですか?rakeタスクからレールモデルにアクセスする

rufusスケジューラ$scheduler = Rufus::Scheduler.start_newを私のレーキで初期化すると、スケジューラはレーキタスクのためスケジューラが生き続けるでしょうか?

答えて

9

rakeタスクでレールモデルにアクセスするには、:環境をロードする必要があります。

task :my_task => [:environment] do 
    User.new #... 
end 

タスク内でスケジューラを呼び出すのではなく、逆の方法でスケジューラを呼び出します。あなたはRufusスケジューラを起動し、そこからレーキタスクを呼び出す必要があります。

は、あなたはどのようなスケジューラ・スレッドに関する最初の

# other require statements ... 
require 'rake' 

# ... 

scheduler = Rufus::Scheduler.start_new 
scheduler.cron "00 6 * * *" do 
    Rake::Task["sometask"].invoke 
end 
+0

する必要がありますか?レーキタスクが終了すると終了します。 – ed1t

関連する問題