2014-06-08 2 views
3

단일 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; 

답변

0

때때로 문제가 사라집니다. 나는 '영원히'를 추가 한 새로운 빌드를 밀었으며 이제는 내 dyno가 솔직하게 나눕니다.

+0

혹시이 문제에 대한 적절한 해결책을 찾았습니까? – duxx0r

0

이 아무것도 할 수 표시되지 않습니다 공회전으로해라. 앱이 유휴 상태에서 복귀하면 앱이 충돌합니다. 로컬로 실행됩니까?

+0

예, 로컬로 실행됩니다. 또한 수동으로 서버를 다시 시작하면 잘 실행됩니다. Heroku 문서별로 dyno가 다시 시작될 때 로그 항목이 표시되어야하지만 표시되지 않습니다. 2011-05-30T22 : 17 : 43 + 00 : 00 heroku [web.1] : Unidling 2011-05-30T22 : 17 : 43 + 00 : 00 heroku [web.1] : 생성 상태에서 시작 상태로 변경됨 – Brendenw

+0

이상 함. 나는 티켓을 제출할 것입니다 ... –

관련 문제