Rufus-Scheduler 运行 只有一次

Rufus-Scheduler Running Only Once

我正在使用 Rufus Scheduler 每两分钟 运行 另一个 Ruby 脚本。脚本 运行 出现过一次,但不会再出现了。我的代码有错误吗? HTOP 显示 "launcher.rb" 在 "script.rb" 代码 运行s 之后继续作为进程存在。

#launcher.rb

require "rubygems"
require "rufus-scheduler"

scheduler = Rufus::Scheduler.new    

scheduler.every("2m")do
    require "/home/pi/Bots/script.rb"
end

scheduler.join

你可以试试

#launcher.rb

require "rubygems"
require "rufus-scheduler"

scheduler = Rufus::Scheduler.new

scheduler.every("2m")do
  #require "/home/pi/Bots/script.rb"
  load "/home/pi/Bots/script.rb"
end

scheduler.join

它可能有效("may" 因为我不知道你的 script.rb 里到底是什么)。 require 不会加载并且 运行 会再次加载 "home/pi/Bots/script.rb" 而 load 会加载并且每次都 运行。

您当前的启动器发生的情况是每 2 分钟调用一次 require,但只有第一次加载并且 运行 script.rb。

请注意以下可能更好:

# script.rb

module MyBot
  def self.call
    # do the job...
  end
end


# launcher.rb

require 'rubygems'
require 'rufus-scheduler'
require '/home/pi/Bots/script.rb'

scheduler = Rufus::Scheduler.new

scheduler.every('2m') do
  MyBot.call
end

scheduler.join

Kernel#load and Kernel#require