Определите job_id изнутри кодовой блоки для задания CRON в планировке RUFUS (Rails 3.2)

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

  •  13-12-2019
  •  | 
  •  

Вопрос

При создании работы CRON через планировщик RUFUS есть ли в блоке кода для задания CRON, чтобы определить job_id Сама заканчивается?

Что я хочу сделать, это что-то подобное:

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.Любые предложения о том, как получить Текущее job_id of the cron, который в настоящее время вызывается?

Я знаю, что есть что-то вроде "triggered_threads", которые вернулись В настоящее время работает задания.Но я хочу что-то более конкретное: job_id из кодового блока, который я в настоящее время внутри.

Это возможно?

Это было полезно?

Решение

Я смог решить эту проблему, поставляя вызов метода планировщика .CRON.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 - некоторая переменная, определенная до того, как производится вызов планировщика.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top