我们的 app 里由一个 app 向另一个 app 发送 http 请求,前几天包括今天早上都是没问题的,现在(15:00 以后)突然出现请求全部 timeout 的错误。
发送请求的 AppId: VPVzwjElxgAwTwJBbdEwoMlx-gzGzoHsz
接收请求的 AppId: DmKxXTYX9AaXDHbtBHHgEUjr-gzGzoHsz
代码类似下面这样(javascript):
router.post('/redi', (req, res) => {
request({
method: req.method,
uri: req.originalUrl,
baseUrl: baseUrl,
body: req.body,
json: true
}).then((response) => {
res.send(response);
}).catch((err) => {
res.status(err.statusCode || 500).send(err.error || err.message);
});
})
通过查看服务器日志,有这样的错误信息:
Unhandled Rejection at: Promise Promise {
_bitField: 18087936,
_fulfillmentHandler0:
Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11)
at ServerResponse.header (/home/leanengine/app/node_modules/express/lib/response.js:700:10)
at ServerResponse.send (/home/leanengine/app/node_modules/express/lib/response.js:154:12)
at ServerResponse.json (/home/leanengine/app/node_modules/express/lib/response.js:240:15)
at ServerResponse.send (/home/leanengine/app/node_modules/express/lib/response.js:142:21)
at request.then.catch (/home/leanengine/app/api/index.js:61:39)
at tryCatcher (/home/leanengine/app/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:689:18)
at Async._drainQueue (/home/leanengine/app/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/home/leanengine/app/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/home/leanengine/app/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:637:20)
at tryOnImmediate (timers.js:610:5)
at processImmediate [as _immediateCallback] (timers.js:582:5),
_rejectionHandler0: undefined,
_promise0: undefined,
_receiver0: undefined,
_cancellationParent:
Promise {
_bitField: 16777216,
_fulfillmentHandler0:
{ RequestError: Error: connect ETIMEDOUT 10.10.57.33:443
at new RequestError (/home/leanengine/app/node_modules/request-promise-core/lib/errors.js:14:15)
at Request.plumbing.callback (/home/leanengine/app/node_modules/request-promise-core/lib/plumbing.js:87:29)
at Request.RP$callback [as _callback] (/home/leanengine/app/node_modules/request-promise-core/lib/plumbing.js:46:31)
at self.callback (/home/leanengine/app/node_modules/request/request.js:188:22)
at emitOne (events.js:96:13)
at Request.emit (events.js:188:7)
at Request.onRequestError (/home/leanengine/app/node_modules/request/request.js:884:8)
at emitOne (events.js:96:13)
at ClientRequest.emit (events.js:188:7)
at TLSSocket.socketErrorListener (_http_client.js:310:9)
at emitOne (events.js:96:13)
at TLSSocket.emit (events.js:188:7)
at emitErrorNT (net.js:1278:8)
at _combinedTickCallback (internal/process/next_tick.js:74:11)
at process._tickDomainCallback (internal/process/next_tick.js:122:9)
name: 'RequestError',
message: 'Error: connect ETIMEDOUT 10.10.57.33:443',
cause: [Object],
error: [Object],
options: [Object],
response: undefined },
_rejectionHandler0: [Function],
_promise0: undefined,
_receiver0: undefined,
_cancellationParent: undefined,
_branchesRemainingToCancel: 1,
_onCancelField: undefined } } reason: Error: Can't set headers after they are sent.
at ServerResponse.OutgoingMessage.setHeader (_http_outgoing.js:356:11)
at ServerResponse.header (/home/leanengine/app/node_modules/express/lib/response.js:700:10)
at ServerResponse.send (/home/leanengine/app/node_modules/express/lib/response.js:154:12)
at ServerResponse.json (/home/leanengine/app/node_modules/express/lib/response.js:240:15)
at ServerResponse.send (/home/leanengine/app/node_modules/express/lib/response.js:142:21)
at request.then.catch (/home/leanengine/app/api/index.js:61:39)
at tryCatcher (/home/leanengine/app/node_modules/bluebird/js/release/util.js:16:23)
at Promise._settlePromiseFromHandler (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:512:31)
at Promise._settlePromise (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:569:18)
at Promise._settlePromise0 (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:614:10)
at Promise._settlePromises (/home/leanengine/app/node_modules/bluebird/js/release/promise.js:689:18)
at Async._drainQueue (/home/leanengine/app/node_modules/bluebird/js/release/async.js:133:16)
at Async._drainQueues (/home/leanengine/app/node_modules/bluebird/js/release/async.js:143:10)
at Immediate.Async.drainQueues (/home/leanengine/app/node_modules/bluebird/js/release/async.js:17:14)
at runCallback (timers.js:637:20)
at tryOnImmediate (timers.js:610:5)
at processImmediate [as _immediateCallback] (timers.js:582:5)
请查一下到底发生了什么。
-
创建时间
17年4月5日
-
最后回复
17年4月5日
-
3
回复
-
1.6K
浏览
-
3
用户