微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

ruby-on-rails – 如何使用Rails钟表工具宝石来运行耙子任务?

从发条机构调用耙机任务的语法是什么?我已经尝试了各种语法,似乎没有任何效果. (由于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执行成功.但是我无法为我的生活找出运行耙子任务的语法.钟表自述没有帮助,不幸的是:

https://github.com/tomykaira/clockwork

解决方法

耙子不是一种方法,所以你不能像这样调用它.

你可以外壳出来并调用它,像

every(30.seconds,'Send Messages') {
  `rake scheduler:send_messages`
}

或者使用heroku API调用一个新的独立进程.这是我现在所喜欢的方法

Heroku::API.new.post_ps('your-app','rake scheduler:send_messages')

Heroku :: API可从heroku.rb:https://github.com/heroku/heroku.rb获得

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐