【发布时间】:2012-07-15 19:36:44
【问题描述】:
从clockwork调用rake任务的语法是什么?我尝试了各种语法,但似乎没有任何效果。 (我对发条特别感兴趣,因为 Heroku 支持它。)
这是我的clock.rb,使用了与everyge 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 任务的语法。不幸的是,发条自述文件没有帮助:
【问题讨论】:
-
浏览clockworks自述文件后,它没有使用您正在使用的语法(
rake 'some:task) -
是的,事实上它根本没有提供语法示例。我已经尝试了 cron 语法(rake some:task),以及when 语法(rake 'some:task')并且没有骰子。看描述如何读作“Clockwork 是 cron 替代品”。你会认为其中一个会起作用。
-
为什么不使用 Heroku 调度器?
-
如果必须的话我会这样做,但是 Heroku 调度程序不会扩展超过某个点,我想放置一些可以扩展的东西。
-
另外,我无法在我的开发机器上测试 Heroku 调度程序。我尝试过使用whengem,但也没有关于如何在开发机器上使用的说明。
标签: ruby-on-rails heroku rake