【问题标题】:node.js application starts timing out after a certain period of timenode.js 应用程序在一段时间后开始超时
【发布时间】:2014-02-10 01:34:09
【问题描述】:

使用 javascript/express/node 开发网络应用程序。在我的本地机器和 Heroku 上,运行了一小段时间(约 5 分钟)后,我必须重新启动服务器,否则它永远不会响应请求。我不知道是什么原因造成的。有没有人处理过类似的事情?

2014-02-10T01:25:29.935130+00:00 app[web.1]: GET / 304 281ms
2014-02-10T01:25:29.936342+00:00 heroku[router]: at=info method=GET path=/ host=wwwcom request_id=8d2cd623-c379-4e6a-8b30-1021dd2f5d18 fwd="" dyno=web.1 connect=2ms      service=284ms status=304 bytes=0
2014-02-10T01:25:30.096768+00:00 heroku[router]: at=info method=GET path=/css/style.css host=wwwcom request_id=953f1c0c-65ce-4ac7-bfc5-04d5bec2791a fwd="" dyno=web.1 connect=2ms service=7ms status=304 bytes=0
2014-02-10T01:24:10.997307+00:00 heroku[router]: at=info method=GET path=/img/money.jpg host=wwwcom request_id=b1eb7f92-98ae-466d-8e03-a7539215936a fwd="" dyno=web.1 connect=2ms service=2ms status=304 bytes=0
2014-02-10T01:25:30.171105+00:00 heroku[router]: at=info method=GET path=/img/money.jpg host=wwwcom request_id=fd9244d0-22eb-4e28-ac81-b820bcab753b fwd="" dyno=web.1 connect=16ms service=4ms status=304 bytes=0
2014-02-10T01:27:58.989371+00:00 heroku[router]: at=error code=H12 desc="Request timeout" method=GET path=/ host=wwwcom request_id=ddcb47a6-b250-49ea-8ba8-9c9da4c41c91 fwd="" dyno=web.1 connect=1ms service=30001ms status=503 bytes=0
2014-02-10T01:27:58.997153+00:00 app[web.1]: GET / 200 30003ms

【问题讨论】:

    标签: heroku


    【解决方案1】:

    我认为启动here 会很好,尤其是调试请求超时部分可能会有所帮助:

    调试请求超时

    请求超时的一个原因是代码中的无限循环。在本地测试(可能使用 pgbackups 拉下的生产数据库的副本),看看您是否可以复制问题并修复错误。另一种可能性是您正试图在您的 Web 进程中执行某种长时间运行的任务,例如:

    • 发送电子邮件
    • 访问远程 API(发布到 Twitter、查询 Flickr 等)
    • 网页抓取/抓取
    • 渲染图像或 PDF
    • 大量计算(计算斐波那契数列等)
    • 大量数据库使用(缓慢或大量查询,N+1 个查询)

    如果是这样,您应该将这项繁重的工作转移到可以从您的网络请求异步运行的后台作业中。有关详细信息,请参阅后台工作人员。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-19
    • 1970-01-01
    • 2021-06-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多