2011-07-28 41 views
-1

我正在編寫一個正在使用Rufus-Scheduler Ruby Gem的應用程序。這是一個返回哈希看起來像時顯示所有正在運行的作業......Ruby:理解來自Rufus-Scheduler的哈希

{"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 => #

上如何去解析了這一點任何想法?

+0

你想做什麼?解析什麼? – austinbv

+0

我只是想解析上面的字符串。通過它循環 – dennismonsewicz

+0

我沒有看到一個字符串? – austinbv

回答

1

該散列將作業字符串ID映射到作業實例。當然,從控制檯看到的一切都是一個字符串。

這應有助於:

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

不需要解析什麼。

+0

感謝您的解釋! – dennismonsewicz