红宝石在轨道上
我正在使用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
这一切都很完美,但我总是回到“成功”的地位,因为我的时髦总是正确地退出。 我目前在Groovy脚本中引入了RuntimeExeptions
来挑起失败的工作。 当我调用system "groovy progra.groovy"
并引发异常(Groovy程序引发异常)时, system
调用的返回值与预期一样为false
。 但是,当通过delayed_job执行相同的操作时,它不会访问def error
方法,而是访问def success
方法。
你有没有建议如何delayed_job实际控制perform
方法的回报? 它何时输入error
或failure
挂钩。 不幸的是,我没有在文档中找到关于此主题的任何内容。
提前致谢
你有没有尝试过这样的事情:
def perform
command = "groovy file.groovy"
system command || raise "Error executing command : #{command}"
end
我很确定delayed_job在救援块中包装执行调用,并根据它捕获的任何异常调用成功或错误。
链接地址: http://www.djcxy.com/p/65777.html上一篇: ruby on rails