0
我使用delayed_job的執行系統調用。這個系統調用調用一個Groovy腳本。的delayed_job - 裝卸作業返回值
class Job
def perform
command "groovy file.groovy"
system command
end
def success(job)
# handle success
end
def error(job, exception)
# handle error, exception
end
end
這是一切都很完美,但我總是回到「成功」的狀態,因爲我的groovy總是正確退出。我目前正在將RuntimeExeptions
投入到Groovy腳本中以挑起失敗的工作。當我打電話system "groovy progra.groovy"
,它拋出一個異常(Groovy的程序提出了一個例外),system
調用的返回值,如預期false
。但通過的delayed_job做同樣的時候,它從來沒有訪問def error
方法,但該方法def success
。
你對delayed_job的實際上是如何控制perform
方法的返回任何意見?它何時進入error
或failure
掛鉤。不幸的是,我沒有在文檔中找到關於此主題的任何內容。
在此先感謝
不幸的是,該系統命令不會引發任何異常。即使退出代碼是1+ ... – pabera
這正是我建議您添加「||」的原因。在system()調用之後引發「執行命令時出錯:#{command}」'。 你也可以檢查結果是否爲零,並在這種情況下引發異常,如「command#{command} failed(reason:$?)」,我的第一個命題只是檢查「falsy」值 – systho
與[這](http://stackoverflow.com/questions/690151/getting-output-of-system-calls-in-ruby),我得到了我的錯誤處理運行。萬分感謝。 – pabera