【问题标题】:Ruby: Understanding Hash from Rufus-SchedulerRuby:从 Rufus-Scheduler 理解哈希
【发布时间】:2011-10-15 07:14:22
【问题描述】:

我正在编写一个使用 Rufus-Scheduler Ruby Gem 的应用程序。这是显示所有正在运行的作业时返回的哈希的样子...

{"Rufus::Scheduler::EveryJob_2154902980"=>#, @jobs=[#, #, @t="20s", @params={:allow_overlapping=>false, :tags=>[]}, @block=#, @running=false, @job_id="Rufus::Scheduler::EveryJob_2174059660", @frequency=20.0, @last=2011-07-28 11:29:55 -0500, @at=1311870615.636462, @last_job_thread=#>, #, @t="20s", @params={:allow_overlapping=>false, :tags=>[]}, @block=#, @running=false, @job_id="Rufus::Scheduler::EveryJob_2172810900", @frequency=20.0, @last=2011-07-28 11:30:02 -0500, @at=1311870622.743519, @last_job_thread=#>, #, @t="20s", @params={:allow_overlapping=>false, :tags=>[]}, @block=#, @running=false, @job_id="Rufus::Scheduler::EveryJob_2163415980", @frequency=20.0, @last=2011-07-28 11:30:10 -0500, @at=1311870630.107751, @last_job_thread=#>, #, @t="20s", @params={:allow_overlapping=>false, :tags=>[]}, @block=#, @running=false, @job_id="Rufus::Scheduler::EveryJob_2163895880", @frequency=20.0, @last=nil, @at=1311870633.0427048>]>, @cron_jobs=#, @jobs=[], @last_cron_second=13>, @frequency=0.33, @thread=#>, @t="20s", @params={:allow_overlapping=>false, :tags=>[]}, @block=#, @running=false, @job_id="Rufus::Scheduler::EveryJob_2154902980", @frequency=20.0, @last=2011-07-28 11:29:53 -0500, @at=1311870613.4696362, @last_job_thread=#>, 

我很难处理这个问题。我尝试将其转换为 JSON 字符串,但我的应用程序死机并在错误日志中显示 Illegal Instruction 错误。

我尝试使用.each 对其进行迭代,但它只返回Rufus::Scheduler::EveryJob_2154902980 => #

关于如何解析这个有什么想法吗?

【问题讨论】:

  • 你想做什么?解析出什么?
  • 我只是想解析上面的字符串。循环遍历它

标签: ruby json hash hashmap rufus-scheduler


【解决方案1】:

哈希将作业字符串 ID 映射到作业实例。当然,从控制台看,一切都是字符串。

这应该会有所帮助:

scheduler.all_jobs.each do |job_id, job|
  p [ job_id, job.class, job.t, job.tags ]
end

不需要解析任何东西。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-09
    • 2014-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多