如何解决节点js脚本TCP套接字服务器挂起或冻结
我正在从大约200个跟踪器设备接收数据,然后在进行一些解析之后将这些数据插入数据库中。我还使用forever
来保持服务器在后台运行。问题出在一周左右后,服务器挂起,没有错误。然后,我必须重新启动整个计算机或停止服务器,然后再次重新启动它才能使其正常运行。我在t2.xlarge和16 GB Ram的aws上有一个服务器。我也尝试过检查永远的日志,但是那边没有错误显示。服务器不爆炸,没有错误发生。例如,我还有其他节点脚本和网站也运行在同一服务器上,并且这些脚本和网站可以连续工作。仅此Gps跟踪器服务器挂起没有错误。有时它可以成功运行一个月,有时仅运行两到三个星期
我正在使用的代码是
var net = require('net');
const cluster = require('cluster');
var numCPUs = require('os').cpus().length;
if (cluster.isMaster) {
// Fork workers.
for (var i = 0; i < numCPUs; i++) {
cluster.fork();
}
cluster.on('death',function(worker) {
console.log('worker ' + worker.pid + ' died');
cluster.fork();
});
} else {
net.createServer(function(socket) {
console.log('received connection...');
socket.on("error",function(err) {
console.log("socket error: ")
console.log(err.stack);
socket.destroy();
});
socket.on('data',function(data) {
console.log(data.toString());
});
}
整个js文件都在这里检查
不知道如何调试此问题或导致此问题的原因?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。