-1

我正在编写一个使用 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在错误日志中显示错误。

我试过用 a 迭代它,.each但它只返回Rufus::Scheduler::EveryJob_2154902980 => #

关于如何解析这个的任何想法?

4

1 回答 1

1

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

这应该有帮助:

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

无需解析任何东西。

于 2011-07-28T23:28:45.817 回答