Rufus Schedulerのcronジョブのコードブロック内からjob_idを決定する(rails3.2)
-
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呼び出しが行われます。
所属していません StackOverflow