4

How can I access model objects from rails rake task?

If I initialize my rufus scheduler $scheduler = Rufus::Scheduler.start_new in my rake would that scheduler stay alive since it's from a rake task?

4

1 回答 1

10

要在 rake 任务中访问 rails 模型,您需要加载 :environment。

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
于 2011-06-23T14:40:06.640 回答