【问题标题】:Using a Rufus-Scheduler event to set more Rufus-Scheduler events使用 Rufus-Scheduler 事件设置更多 Rufus-Scheduler 事件
【发布时间】:2013-07-09 21:58:37
【问题描述】:

我有一个脚本,我正在尝试使用 Rufus-Scheduler 创建凌晨 1 点的每日时间表(基于日出和日落)。当我运行代码时,它似乎只运行第一个调度程序事件,之后不会运行任何事件。我的理解是 Rufus-Scheduler 应该为每个计划生成一个新线程,但它看起来像是阻塞的。我需要在新线程上生成时间表吗?我是否需要为要创建的每个计划创建一个新的计划程序实例?我在代码底部添加了一个测试调度程序,但它没有被创建。

这是与 rufus-scheduler 相关的代码部分

def get_todays_show()
  this_year = Time.now.year
  check_sunset
  #the time format that comes back isn't reconginzed by rufus scheduler so recreate it with chronic
  sunrise = Chronic.parse("#{@local_sunrise.to_s[0,10]} #{@local_sunrise.to_s[11,8]}" )
  sunset = Chronic.parse("#{@local_sunset.to_s[0,10]} #{@local_sunset.to_s[11,8]}" )

  schedule_array = create_array_from_csv
  schedule_array.each do |sub_array|
    earlier = Chronic.parse("#{sub_array[0]} #{this_year} 12:00:01 am")
    later = Chronic.parse("#{sub_array[1]} #{this_year} 11:59:59")
    range = earlier..later

    if range.cover?(Time.now)
      @scheduler.at sunset do
        madrix_call(sub_array[2].strip)
      end
      @scheduler.at sunrise do
        madrix_call(@off_slot)
      end
    end
   end
end
#set up the scheduler
@scheduler = Rufus::Scheduler.start_new(:frequency => 30.0)

#run it once to handle today
get_todays_show

#the schedule to handle the future
@scheduler.cron '1 1 * * *' do
  get_todays_show
  p @scheduler.jobs
 end

 @scheduler.cron '* * * * *' do 
  p "test schedule - #{Time.now}"
  end

@scheduler.join

【问题讨论】:

    标签: ruby rufus-scheduler


    【解决方案1】:

    我需要在新线程上生成计划吗?

    不,rufus-scheduler 会为您完成。

    我是否需要为要创建的每个计划创建一个新的计划程序实例?

    不,一点也不。

    您是否尝试过不设置频率(使用 rufus-scheduler 的默认频率)?

    虽然您没有遇到 rufus-scheduler 问题,但请阅读:http://www.chiark.greenend.org.uk/~sgtatham/bugs.html

    您没有提供有关您的环境的任何细节,这很难帮助您。

    尝试从小到大迭代。安排一个小的日程安排,然后一步一步地进行。

    【讨论】:

    • 感谢您的帮助。我在 Mac 上使用 RVM 运行 1.9.3-p385。脚本的最终部署将在 Windows 7 机器上。我会尝试减少。
    • 移除频率似乎奏效了……我会继续运行一些测试看看。
    • 似乎移除了固定它的频率。
    猜你喜欢
    • 1970-01-01
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-05-31
    • 1970-01-01
    • 2016-06-14
    相关资源
    最近更新 更多