2011-06-23 117 views
3

如何從rails rake任務訪問模型對象?從rake任務訪問rails模型

如果我在我的rake中初始化我的rufus調度程序$scheduler = Rufus::Scheduler.start_new,那麼調度程序會保持活動狀態,因爲它來自rake任務?

回答

9

要訪問rake任務中的導軌模型,您需要加載:環境。

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

您不會在任務中調用調度程序,反之亦然。您需要啓動Rufus調度程序,然後從它們調用您的rake任務。

您需要首先

# other require statements ... 
require 'rake' 

# ... 

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

何談調度線程?一旦耙子任務結束,它會被終止。 – ed1t