TypeError:msecs必须是正在运行的应用程序中的数字

时间:2017-04-27 06:30:22

标签: node.js newrelic

昨天,最终我在高峰时段遇到了所有API服务器的奇怪问题。有下面提到的间歇性错误。我正在使用该应用程序的几个第三方服务。应用程序使用的一些服务是newrelic,airbrake,pusher等。

堆栈:

Node v0.12.2
pm2 2.4.5
request module: 2.81.0

错误:

Uncaught TypeError: msecs must be a number
at Object.exports.enroll (timers.js:156:11) 
at Socket.setTimeout (net.js:329:12) 
at ClientRequest.<anonymous> (_http_client.js:558:10) 
at ClientRequest.g (events.js:199:16) 
at ClientRequest.emit (events.js:129:20) 
at tickOnSocket (_http_client.js:486:7) at _http_client.js:497:7 at process._tickCallback (node.js:355:11)

Errors in airbrake:
Error: msecs must be a number
timers.js:156 in Object.exports.enroll
net.js:337 in Socket.setTimeout
_http_client.js:565
events.js:199 in ClientRequest.g
events.js:129 in ClientRequest.emit
_http_client.js:493 in tickOnSocket
_http_client.js:504
node.js:381 in process._tickDomainCallback

我已经尝试过的东西,但没有任何帮助。这些错误持续了12-15个小时。

  1. 将节点版本更新为6.9.1
  2. 将请求模块版本降级至2.2.1
  3. 尝试在我使用请求配置的情况下添加以下请求超时。

    var request = require('request') request = request.defaults({timeout:120000})

  4. 尝试使用节点运行app.js.

  5. 尝试在.bowerrc中添加超时。
  6. 部署新服务器并再次使用代码,但错误仍然存​​在。
  7. 过去3小时内未再发生错误。我无法找到RCA,也不确定它是否在高峰时段重新出现。

    任何想法都会受到赞赏。

0 个答案:

没有答案