当延迟任务失败时进行作业,因此它会自动执行
我们的应用程序托管在heroku上,并且在向远程系统发送信息时使用延迟作业(通过GET方式将URL传递给一些url参数)
远程系统通常会返回一个成功代码,但它真的很忙,它会返回一个tryagain代码。
假设我们的方法是
def send_info
the_url = "http://mydomain.com/dosomething?arg=#{self.someval}"
the_result = open(the_url).read
successflag = get_success_flag_from(the_result)
end
所以我们的代码在某处
@widget.delay.send_info
而且一切正常。
除非它自动处理遥控器稍后尝试返回的情况。
send_info方法(这是什么延迟作业将执行)有什么办法来“告诉”delayed_job“再次重试我”? 我们是否需要抛出一些自定义异常或什么?
提出任何类型的异常应该会导致delayed_job重新排序(仅限于尝试很多次); 如果您不特别需要自定义异常,则可以引发RuntimeError
。