2012-07-29 36 views
0

在創建穿過魯弗斯調度計劃作業,是在那裏的碼塊內的一些方式 用於計劃作業以確定JOB_ID cron作業本身?確定JOB_ID用於魯弗斯調度計劃作業(導軌3.2)

我想要做的是這樣的:

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。有關如何檢索當前正在觸發的cron的當前job_id的 的任何建議?

我知道有像「triggered_threads」,它返回 當前正在運行的作業。但我想要更具體的東西: 我目前所在的代碼塊的job_id。

這可能嗎?

回答

1

我能夠通過與可選參數供應scheduler.cron方法調用來解決這個問題,明確標識的新作業的ID:

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之前定義的一些變量調用。