从时钟系统调用 rake 任务的语法是什么?我尝试了各种语法,但似乎没有任何效果。(我对发条特别感兴趣,因为 Heroku 支持它。)
这是我的clock.rb,使用与gem 使用的相同语法:
module Clockwork
puts "testing clockwork!"
every(30.seconds, 'Send Messages') {
rake 'scheduler:send_messages'
}
end
这是我在 scheduler.rake 中的 rake 任务:
task :send_messages => :environment do
puts "rake task run successfully!"
end
当我开始发条流程时,会发生以下情况:
$ clockwork lib/clock.rb
testing clockwork!
I, [2012-07-16T14:42:58.107245 #46427] INFO -- : Starting clock for 1 events: [ Send Messages ]
I, [2012-07-16T14:42:58.107364 #46427] INFO -- : Triggering 'Send Messages'
attempting to run rake task!
E, [2012-07-16T14:42:58.107437 #46427] ERROR -- : undefined method `rake' for Clockwork:Module (NoMethodError)
这每 30 秒运行一次。可以看到,clock.rb 执行成功。但我一生都无法弄清楚运行 rake 任务的语法。不幸的是,发条自述文件没有帮助: