RUFUS Scheduler (Rails 3.2)의 Cron 작업을 위해 코드 블록 내에서 Job_ID를 결정하십시오.

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

  •  13-12-2019
  •  | 
  •  

문제

rufus 스케줄러를 통해 크론 작업을 만들 때 어떤 방법이 있습니까? Cron 작업의 코드 블록 내에서 job_id를 결정합니다. Cron 직업 자체?

내가하고 싶은 것은 다음과 같습니다 :

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?

나는 반환 된 "triggered_threads"와 같은 것이 있음을 알고 있습니다. 현재 실행중인 작업.그러나 나는 더 구체적인 것을 원한다 job_id 코드 블록의 job_id 현재 내에 있습니다.

이이 가능합니까?

도움이 되었습니까?

해결책

새 작업의 ID를 명시 적으로 식별하는 선택적 매개 변수와 Scheduler.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는 scheduler.cron 호출이 만들어지기 전에 정의 된 변수입니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top