【发布时间】:2014-08-19 11:30:15
【问题描述】:
我正在创建一个 Node.js 服务,该服务需要发出 HTTP GET 请求并在遇到 503 响应时重试它们。
来自 W3.org 的Header Field Definitions:
Retry-After response-header 字段可以与 503(服务 不可用)响应以指示服务预计将持续多长时间 对请求的客户端不可用。 [...] 该字段的值 可以是 HTTP 日期或整数秒数(在 十进制)在响应时间之后。 [...] 两个使用示例 是
Retry-After: Fri, 31 Dec 1999 23:59:59 GMT Retry-After: 120
我想使用此信息在适当的时间触发重试。这很容易用秒,因为我可以轻松地将它们转换为毫秒和setTimeout(fn, ms)。 HTTP-date 版本更难。我需要找到我服务器的时区,将提供的日期转换为该时区,从提供的时间中减去当前时间,将结果转换为毫秒,然后如果ms 为正值,则为setTimeout(fn, ms)。
当然,我可以做到所有这些,但我希望已经存在一个库来做到这一点,因为这似乎是一件相当普遍的事情。但是,我似乎找不到一个。有线索吗?
【问题讨论】:
标签: javascript date datetime timezone