加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 21:38:22 所属栏目:百科 来源:网络整理
导读:从发条机构调用耙机任务的语法是什么?我已经尝试了各种语法,似乎没有任何效果. (由于Heroku的支持,我特别关注发条.) 这是我的clock.rb,使用与宝石使用相同的语法: module Clockwork puts "testing clockwork!" every(30.seconds,'Send Messages') { 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执行成功.但是我无法为我的生活找出运行耙子任务的语法.钟表自述没有帮助,不幸的是:

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获得

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读