Determine job_id de dentro do bloco de código para um cron job no Rufus Scheduler (Rails 3.2)
-
13-12-2019 - |
Pergunta
Ao criar um trabalho cron através do Rufus Scheduler, existe alguma maneira dentro do bloco de código para o trabalho cron para determinar o job_id do cron trabalho em si?
O que eu quero fazer é algo assim:
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
O problema é self.job_id
.Quaisquer sugestões sobre como recuperar o
job_id atual do cron que está sendo acionado no momento?
Sei que há algo como "triggered_threads", que voltou trabalhos em execução no momento.Mas quero algo mais específico:o job_id do bloco de código em que estou atualmente.
Isso é possível?
Solução
Consegui resolver esse problema fornecendo à invocação do método scheduler.cron um parâmetro opcional que identificava explicitamente o ID do novo trabalho:
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
onde explicit_job_id
é alguma variável definida antes da invocação do scheduler.cron ser feita.