我已点击此链接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 和命令的输出?
最佳答案
在此处查看有关运行者的更多信息 http://guides.rubyonrails.org/command_line.html#rails-runner .
据此,它在应用程序的上下文中运行 Ruby 代码。或者可以这么说,您可以为模型执行某种方法(每当文档试图显示时)。这在 Rails-2 中会略有不同。另外,如果您看到默认 job_types 的每当文档,例如 job_type 运行程序,它会执行以下操作 -
"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
。希望这有帮助!
关于ruby-on-rails - 无法使用everyize在ruby中运行cronjob,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10512075/