我已关注此链接https://github.com/javan/whenever但我尝试在开发模式下运行cronjob它无法正常工作。我想知道以下几行:
every 3.hours do
runner "MyModel.some_process"
rake "my:rake:task"
command "/usr/bin/my_great_command"
end
什么是MyModel.some_process
?
如果我想运行ruby文件,我就这样写了
every 1.minute do
runner "cronjob.rb",:environment => "development"
end
...这是正确的方法还是我必须指定cronjob.rb
文件的路径,如:
runner "app/controllers/cronjob.rb"
在哪里可以看到rake和命令的输出?
答案 0 :(得分:2)
在此处查看有关跑步者的更多信息http://guides.rubyonrails.org/command_line.html#rails-runner。
根据它,它在应用程序的上下文中运行Ruby代码。或者说你可以为模型执行一些方法(每当文档试图显示时)。这在Rails-2中会略有不同。此外,如果您看到默认job_types的随时文档,例如对于job_type runner,它会执行以下操作 -
"cd :path && script/rails runner -e :environment ':task' :output"
因此,当您在runner "MyModel.some_process"
中执行schedule.rb
时,它将转到应用程序路径并执行script/rails runner -e <development specified by you> MyModel.some_process
,简而言之,它会执行MyModel.some_process
。希望这有帮助!