Rails rakeタスクからモデルオブジェクトにアクセスするにはどうすればよいですか?
rakeでrufusスケジューラーを初期化した場合、$scheduler = Rufus::Scheduler.start_new
そのスケジューラーはrakeタスクからのものであるため、存続しますか?
Rails rakeタスクからモデルオブジェクトにアクセスするにはどうすればよいですか?
rakeでrufusスケジューラーを初期化した場合、$scheduler = Rufus::Scheduler.start_new
そのスケジューラーはrakeタスクからのものであるため、存続しますか?
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