Heroku上的Node.js应用程序未从空闲状态唤醒

Heroku上的Node.js应用程序未从空闲状态唤醒,node.js,heroku,Node.js,Heroku,我在一个Heroku web dyno上有一个简单的node.js应用程序,并且在1个多月内保持不变。最近,我发现这个应用程序并没有像Heroku docs()那样从空闲状态返回 相反,我的日志显示,收到http请求时,Heroku没有尝试unidle,应用程序返回503错误: 2014-06-08T08:07:22.736817+00:00 heroku[web.1]: State changed from up to down 2014-06-08T08:07:22.736356+00:00

我在一个Heroku web dyno上有一个简单的node.js应用程序,并且在1个多月内保持不变。最近,我发现这个应用程序并没有像Heroku docs()那样从空闲状态返回

相反,我的日志显示,收到http请求时,Heroku没有尝试unidle,应用程序返回503错误:

2014-06-08T08:07:22.736817+00:00 heroku[web.1]: State changed from up to down
2014-06-08T08:07:22.736356+00:00 heroku[web.1]: Idling
2014-06-08T08:07:27.844277+00:00 heroku[web.1]: Process exited with status 143
2014-06-08T08:07:26.009475+00:00 heroku[web.1]: Stopping all processes with SIGTERM
2014-06-08T16:37:36.565924+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/ host=brisksoft.herokuapp.com request_id=5e7040c6-fe3b-44b1-bf99-fa0214df9e5c fwd="174.21.203.228" dyno= connect= service= status=503 bytes=
2014-06-08T16:37:36.773503+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path=/favicon.ico host=brisksoft.herokuapp.com request_id=92627039-51f6-4a99-bafa-2c6f3a96d5ea fwd="174.21.203.228" dyno= connect= service= status=503 bytes=
我知道通过NewRelic和Pingdom可以自动解决睡眠问题,但我更愿意实际解决这个问题,并让Heroku dyno按照文档记录的方式运行

My package.json是:

{
  "name": "agent-node",
  "version": "0.0.1",
  "dependencies": {
    "elementtree": "^0.1.6",
    "request": "^2.27.0",
  },
  "scripts": {
    "start": "node index.js"
  },
  "description": "Node.js application for Job Agent",
  "main": "index.js",
  "devDependencies": {},
  "repository": {
    "type": "git",
    "url": "https://github.com/brenbob/nodejs"
  },
  "author": "Brenden West",
  "license": "ISC",
  "bugs": {
    "url": "https://github.com/brenbob/nodejs/issues"
  },
  "homepage": "https://github.com/brenbob/nodejs"
}
Index.js是:

// index.js
var server = require("./server");

server.start();
和server.js:

var http = require("http");
var url = require('url'); 
var api = require("./api");

function start() {
  function onRequest(request, response) {
    var pathname = url.parse(request.url).pathname;
    switch(pathname) {
    case '/getjobs':
        api.getjobs(request, response);

    break;
    default:
        response.writeHead(200, {"Content-Type": "text/plain"});
        response.write("Hello World");
        response.end();
    }
  }

  http.createServer(onRequest).listen(process.env.PORT || 8888);
  console.log("Server has started.");
}

exports.start = start;

这似乎与怠速无关。你的应用程序从空闲状态返回时正在崩溃。它在本地运行吗?

有时问题会消失。我推动了一个新的建设,增加了'永远',现在我的dyno服从unidles

是的,它在本地运行。另外,如果我手动重新启动服务器,它运行正常。根据Heroku文档,当dyno重新启动时,我应该会看到一个日志条目,但它们不会出现:2011-05-30T22:17:43+00:00 Heroku[web.1]:Uniling 2011-05-30T22:17:43+00:00 Heroku[web.1]:状态从已创建更改为已启动您是否找到解决此问题的正确方法?