システムコールを実行するためにdelayed_jobを使用しています。このシステム コールは、Groovy スクリプトを呼び出します。
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
これはすべて完全に機能していますが、グルーヴィーは常に正しく終了するため、常に「成功」ステータスが返されます。私は現在RuntimeExeptions
、Groovy スクリプトを投入して、失敗したジョブを誘発しています。呼び出しsystem "groovy progra.groovy"
て例外が発生すると (groovy プログラムが例外を発生させます)、system
call の戻り値は、期待どおりfalse
です。しかし、delayed_job を介して同じことを行うと、メソッドではdef error
なくメソッドにアクセスしdef success
ます。
delayed_job が実際にperform
メソッドのリターンをどのように制御するかについて何かアドバイスはありますか? error
またはfailure
フックにいつ入るか。残念ながら、このトピックに関するドキュメントは見つかりませんでした。
前もって感謝します