Rufus Schedulerのcronジョブのコードブロック内からjob_idを決定する(rails3.2)

StackOverflow https://stackoverflow.com//questions/11710112

  •  13-12-2019
  •  | 
  •  

質問

Rufus Schedulerを介してcronジョブを作成するとき、何らかの方法がありますか cronジョブのコードブロック内で、cronジョブのjob_idを決定します。 cronジョブ自体?

私がやりたいことは次のようなものです:

scheduler.cron '0 0 0 * * * Etc/GMT+0' do
  # Nix existing jobs.
  scheduler.cron_jobs.values.map { |j| if j.job_id != self.job_id then j.unschedule end }     
  ...
end

問題は self.job_id.どのように取得するかについての提案はありますか 現在トリガーされているcronの現在のjob_id?

私は"triggered_threads"のようなものがあることを知っています 現在実行中のジョブ。しかし、私はより具体的な何かが欲しい:ザ- 私が現在中にいるコードブロックのjob_id。

これは可能ですか?

役に立ちましたか?

解決

私はスケジューラを提供することでこの問題を解決することができました。新しいジョブのIDを明示的に識別するオプションのパラメーターを使用したcronメソッドの呼び出し:

scheduler.cron '0 0 0 * * * Etc/GMT+0', {:job_id => explicit_job_id} do
  # Nix existing jobs.
  scheduler.cron_jobs.values.map { |j| if j.job_id != self.job_id then j.unschedule end }     
  ...
end

ここで explicit_job_id スケジューラの前に定義された変数です。cron呼び出しが行われます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top