단일 Heroku 웹 dyno에 간단한 node.js 앱이 있고 1 개월 이상 변경되지 않았습니다. 최근에, 나는 그것이 Heroku 워드 프로세서 (https://devcenter.heroku.com/articles/dynos#the-dyno-manager) 당 해야하는대로 응용 프로그램이 유휴 상태에서 반환하지 않는 것으로 나타났습니다. ,Heroku의 Node.js 앱이 유휴 상태에서 깨어나 지 않습니다.
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=
나는 새로운 유물과 핑덤를 통해 자고 방지하기 위해 자동화 된 해결 방법을 알고 있어요 :
대신, 내 로그는 HTTP 요청을 수신에 unidle 할 Heroku가 시도를 보여주지 앱은 503 오류를 반환 실제로이 문제를 해결하고 Heroku dyno가 문서화 된대로 동작하도록하는 것이 좋습니다.
내 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;
혹시이 문제에 대한 적절한 해결책을 찾았습니까? – duxx0r