Determine job_id de dentro do bloco de código para um cron job no Rufus Scheduler (Rails 3.2)

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

  •  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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top