0

我有一个相当笼统的问题。我编写了一个相当大的 rake 任务,它经过了几个 API 调用。在每个 API 调用中,我都编写了一个故障保险,例如

if response.code != 200
    Email.delete

所以这没有任何问题 - 如果整个脚本中的任何 API 调用给出了 200 以外的任何响应代码,它将中止。但是,在 100 次中,我似乎至少有 1-2 次出现超时错误。该脚本将冻结一段时间,然后引发超时错误。

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

大局是我的脚本正在创建约 10,000 封电子邮件。如果中途超时,我不想重新发送所有约 10,000 封电子邮件。我宁愿删除所有电子邮件并重新开始。

4

1 回答 1

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
于 2013-08-27T19:25:41.030 回答