javascript - 解码gtfs-r数据时"Illegal group end indicator...(not a group)"

标签 javascript protocol-buffers gtfs

我正在尝试使用 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 应用程序。我推荐两个当今非常流行的工具,PM2Passenger。 (PM2使用起来非常简单)。这些工具将有助于在 NodeJS 应用程序崩溃后自动重新启动

http://pm2.keymetrics.io/

https://www.phusionpassenger.com/library/walkthroughs/deploy/nodejs/ownserver/nginx/oss/install_passenger_main.html

关于javascript - 解码gtfs-r数据时"Illegal group end indicator...(not a group)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57956299/

相关文章:

ios - 如何将GTFS文本文件导入iOS应用?

javascript - <input type ="hidden">和全局JS变量有什么区别

Javascript 复选框 onclick/onchange

protocol-buffers - protobuf-net 序列化对象图

python - 在 python 中使用 google protobuf 反射

nmea - "bearing"如何从 GPRMC NMEA 句子派生度数?

使用 R 读取 GTFS 实时文件?

javascript - 点击模态确定按钮时,按模态使用次数触发点击,无需刷新页面

javascript - jQuery 如何将数据放入 HTML (.data)

python - 在Windows中连接MySQL到Python时出现缺少protobuf的错误