-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 に答える