Ruby:从Rufus调度器理解Hash

Ruby:从Rufus调度器理解Hash,ruby,json,hash,hashmap,rufus-scheduler,Ruby,Json,Hash,Hashmap,Rufus Scheduler,我正在编写一个应用程序,它使用Rufus调度器Ruby Gem。这是显示所有正在运行的作业时返回的哈希的样子 {"Rufus::Scheduler::EveryJob_2154902980"=>#, @jobs=[#, #, @t="20s", @params={:allow_overlapping=>false, :tags=>[]}, @block=#, @running=false, @job_id="Rufus::Scheduler::EveryJob_21740596

我正在编写一个应用程序,它使用Rufus调度器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字符串,但我的应用程序死机很厉害,并在错误日志中显示
非法指令
错误

我尝试过用
对它进行迭代,但它只返回
Rufus::Scheduler::EveryJob_2154902980=>。


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

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

这将有助于:

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

无需解析任何内容。

您想做什么?解析什么?我只是想解析上面的字符串。循环通过它