Как использовать гем часового механизма Rails для запуска rake-задач?

Каков синтаксис вызова rake-задач из часового механизма? Я пробовал все виды синтаксиса, и ничего не работает. (Меня особенно интересуют часовые механизмы, потому что их поддерживает Heroku.)

Вот мой файл clock.rb, использующий тот же синтаксис, что и гем всякий раз:

module Clockwork
  puts "testing clockwork!"
  every(30.seconds, 'Send Messages') {
    rake 'scheduler:send_messages'
    }
end

А вот моя задача rake в scheduler.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. К сожалению, ридми часового механизма не поможет:

https://github.com/tomykaira/clockwork

11
задан user1377556 16 July 2012 в 22:39
поделиться