Ruby Rake任务API超时错误

时间:2013-08-27 19:03:58

标签: ruby api email timeout

我有一个相当普遍的问题。我编写了一个相当大的rake任务,通过几个API调用。在每个API调用中,我都编写了一个类似

的故障安全保护程序
if response.code != 200
    Email.delete

这样可以毫无问题地工作 - 如果整个脚本中的任何API调用都给出了200以外的响应代码,它将会中止。然而,在100次中,似乎至少1-2次我得到超时错误。该脚本将冻结一段时间,然后抛出超时错误。

如果脚本在任何时候超时,我如何逃避该超时错误并确保我的脚本正在运行Email.delete?

总体而言,我的脚本正在创建~10,000封电子邮件。如果它中途超时,我不想重新发送所有~10,000封电子邮件。我宁愿删除所有电子邮件并重新开始。

1 个答案:

答案 0 :(得分:0)

您可以从超时错误中rescue

def do_rake_task
  # work goes here...
  # I hope it isn't scraping email addresses for spam...
rescue Timeout::Error => e
  # log #{e} for later, maybe
  Email.delete
end