2

我已经按照这个链接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 和 command 的输出?

4

1 回答 1

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。希望这可以帮助!

于 2012-05-09T09:21:05.537 回答