我正在尝试使用 node.js 应用程序定期解码一些 gtfs 实时数据。它基本上运行良好,但每隔几个小时我就会遇到一个错误,导致我的应用程序崩溃。我的日志中的错误消息显示有一个“Message .transit_realtime.FeedMessage 7 的非法组结束指示符(不是组)”
我找到了this question/answer在 StackOverflow 上,但它似乎并没有解决我的特定问题。以下是我用来解码 gtfs-r feed 的代码概要:
//process the response
var processBuffers = function(response) {
var data = [];
response.on('data', function (chunk) {
data.push(chunk);
});
response.on('end', function () {
data = Buffer.concat(data);
var decodedFeedMessage = transit.FeedMessage.decode(data);
allData = decodedFeedMessage.entity;
//continues processing with allData...
});
}
谢谢!
最佳答案
NodeJs 崩溃问题基本上每天都会发生,任何类型的 fatal error 都会触发。由于您从第 3 方收到数据,因此必须确保数据始终正确以防止错误。
简单的解决方案是使用另一个系统来部署 NodeJS 应用程序。我推荐两个当今非常流行的工具,PM2和Passenger。 (PM2使用起来非常简单)。这些工具将有助于在 NodeJS 应用程序崩溃后自动重新启动
关于javascript - 解码gtfs-r数据时"Illegal group end indicator...(not a group)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956299/