Ruby: понимание хэша от Rufus-Scheduler - PullRequest
0 голосов
/ 28 июля 2011

Я пишу приложение, которое использует 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 => #

Есть какие-нибудь идеи о том, как это сделать?

1 Ответ

1 голос
/ 29 июля 2011

хеш отображает идентификаторы заданий в экземпляры заданий. Конечно, все это строка, если смотреть с консоли.

Это должно помочь:

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

Не нужно ничего разбирать.

...