首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Rufus-Scheduler仅运行一次

Rufus-Scheduler仅运行一次
EN

Stack Overflow用户
提问于 2019-09-01 00:44:09
回答 1查看 133关注 0票数 0

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

代码语言:javascript
复制
#launcher.rb

require "rubygems"
require "rufus-scheduler"

scheduler = Rufus::Scheduler.new    

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

scheduler.join
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-09-01 02:41:06

您可以尝试使用

代码语言:javascript
复制
#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

它可能会起作用(“可能”,因为我不知道你的script.rb里到底有什么)。require不会再次加载并运行"home/pi/Bots/script.rb“后面的内容,而load将每次加载并运行。

您当前的启动程序每2分钟调用一次require,但只有在第一次加载并运行script.rb时才会调用。

请注意,以下内容可能更好:

代码语言:javascript
复制
# 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#loadKernel#require

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57739915

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档