2

我不明白为什么“无论何时”都不起作用

时间表.rb

every 2.minutes do
  runner "Ping.check_pings"
end

ping.rb

class Ping < ActiveRecord::Base
    attr_accessible :LAN, :WAN, :info, :infastructure_id

    def self.check_pings      
      @monitor_ping = Ping.new()    
      @monitor_ping.WAN = "true"
      @monitor_ping.save 
    end
end

crontab -l

0,2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,46,48,50,52,54,56,58 * * * * /bin/bash -l -c 'cd /home/ruben/Monitoring && script/rails runner -e production '\''Ping.check_pings'\'''

rails runner "Ping.check_pings" ==> 在命令行中工作

我在“rails s”中运行我的项目进行了尝试,但没有我做错了什么?

4

2 回答 2

4

我只是在猜测,但是...您是在测试开发还是生产?

如果您正在开发中,请不要忘记添加您的 schedule.rb:

set :environment, 'development'

你也可以这样做:

every 10.minutes do
  runner "User.vote", environment => "development"
end

问候伊万

于 2011-03-30T19:17:27.473 回答
0
'cd /home/ruben/Monitoring && script/rails runner -e production '\''Ping.check_pings'\'''

我认为这个字符串上的字符转义不正确;看看production '\''这块,第一个'关闭字符串,然后你在'没有打开字符串的情况下转义 a。尝试这个:

'cd /home/ruben/Monitoring && script/rails runner -e production \'Ping.check_pings\''

或这个:

"cd /home/ruben/Monitoring && script/rails runner -e production 'Ping.check_pings'"

或这个:

'cd /home/ruben/Monitoring && script/rails runner -e production Ping.check_pings'

(您可能根本不需要在单个 shell-word 周围加上引号。:)

于 2011-03-08T12:00:20.163 回答