我正在使用 NodeJS6 和 request-promise 运行 Debian 6。我正在使用 request-promise 来提供网络挂钩。目前,我们每天交付大约 2+M 个网络挂钩。
大多数时候一切都运行良好,但有些情况下 HTTP 请求根本没有传递。
这是我的简单代码:
requestPromise({ url: 'https://change-iot-request/do', auth: { user: "switch", pass: "my-password" }, method: "GET", timeout: 15000, rejectUnauthorized: false})
.catch(function(err) {
console.log(err);
});
有时端点根本没有收到任何东西。我试图运行 tshark 来查看是否有包通过 - 在任何服务器上都没有。
如果我在它发生时使用相同的参数运行 curl 命令,请求确实会通过。
如果我重新启动 NodeJS,它会再次开始正确交付。
这是错误输出:
{"name":"RequestError","message":"Error: ETIMEDOUT","cause":{"code":"ETIMEDOUT","connect":true},"error":{"code":"ETIMEDOUT","connect":true}
该怎么办?
特别是当 curl 确实有效时,连接应该没问题。