Determina Job_id dall'interno del blocco del codice per un lavoro di cron in Scheduler Rufus (rotaie 3.2)
-
13-12-2019 - |
Domanda
Quando si crea un lavoro di cron attraverso il pianificatore di Rufus, c'è qualche modo all'interno del blocco del codice per il lavoro di cron per determinare il job_id del Cron Job stesso?
Quello che voglio fare è qualcosa del genere:
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
.
Il problema è self.job_id
.Qualsiasi suggerimento su come recuperare il
Attuale Job_ID del cron che è attualmente innescato?
So che c'è qualcosa come "triggered_threads", che è tornato lavori attualmente in esecuzione.Ma voglio qualcosa di più specifico: il Job_ID del blocco di codice sono attualmente all'interno.
è possibile?
Soluzione
Sono stato in grado di risolvere questo problema fornendo l'invocazione del metodo Scheduler.Cron con un parametro opzionale che ha identificato esplicitamente il nuovo ID del lavoro:
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
.
DOVE explicit_job_id
è una variabile definita prima che sia effettuata l'invocazione Scheduler.Cron.