Определите job_id изнутри кодовой блоки для задания CRON в планировке RUFUS (Rails 3.2)
-
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
- некоторая переменная, определенная до того, как производится вызов планировщика.