Ermitteln Sie die job_id aus dem Codeblock für einen Cron-Job in Rufus Scheduler (Rails 3.2)

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

  •  13-12-2019
  •  | 
  •  

Frage

Gibt es beim Erstellen eines Cron-Jobs über den Rufus-Scheduler eine Möglichkeit innerhalb des Code-Blocks für den Cron-Job, um die job_id des zu ermitteln cron-Job selbst?

Was ich tun möchte, ist so etwas:

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

Das Problem ist self.job_id.Irgendwelche Vorschläge zum Abrufen der aktuelle job_id des Crons, der gerade ausgelöst wird?

Ich weiß, dass es so etwas wie "triggered_threads" gibt, das zurückgegeben wurde derzeit laufende Jobs.Aber ich möchte etwas Spezifischeres:der job_id des Codeblocks, in dem ich mich gerade befinde.

Ist das möglich?

War es hilfreich?

Lösung

Ich konnte dieses Problem lösen, indem ich den Scheduler zur Verfügung stellte.aufruf der Cron-Methode mit einem optionalen Parameter, der die ID des neuen Jobs explizit identifiziert:

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

wo explicit_job_id ist eine Variable, die vor dem Scheduler definiert ist.cron-Aufruf wird durchgeführt.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top