Solucionado (ver solução)
Solucionado
(ver solução)
10
respostas

Heroku codigo 503

Olá pessoal consegui realizar o deploy da minha aplicação no primeiro momento a aplicação funciona, depois de um determinado tempo, 5min mais ou menos, a aplicação cai e não consigo acessar novamente, alguém tem alguma dica o que pode ser?

10 respostas

Oi Jonas, no heroku sua aplicação não fica 100% no ar o tempo todo o que chamamos de online 24/7. No plano gratuito o processo que mantem a sua aplicação no ar dorme, mas logo depois da primeira requisição ele volta a ficar ativo.

Talvez tenha sido isso ou mesmo algum problema no próprio serviço do Heroku. Você tentou acessar novamente? Deu certo?

Após o deploy a aplicação funciona normalmente mas depois de alguns segundos ela cai e da a mensagem de " Aplication error ". tento atualizar a pagina mas a mensagem persiste.

Opa Jonas, no painel de configurações da aplicação lá no heroku, você encontra uma opção de logs, verifica lá se algum erro foi impresso no terminal ou coisa assim.

Logs

2018-04-12T00:37:22.906366+00:00 heroku[web.1]: State changed from starting to crashed 2018-04-12T00:37:22.886339+00:00 heroku[web.1]: Process exited with status 126 2018-04-12T00:37:22.810392+00:00 app[web.1]: bash: ./node_modules/.bin/nodemon.cmd: Permission denied 2018-04-12T00:37:23.864986+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/users" host=api-node-vue.herokuapp.com request_id=b90c420b-e751-4517-87b9-ae20f9017683 fwd="201.6.142.144" dyno= connect= service= status=503 bytes= protocol=https 2018-04-12T00:37:24.918452+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=api-node-vue.herokuapp.com request_id=a3ffe20d-9633-44b6-86ed-7c3c1beda2ee fwd="201.6.142.144" dyno= connect= service= status=503 bytes= protocol=https 2018-04-12T00:39:12.581266+00:00 heroku[web.1]: State changed from crashed to starting 2018-04-12T00:39:15.210662+00:00 heroku[web.1]: Starting process with command ./node_modules/.bin/nodemon.cmd -c app.js 2018-04-12T00:39:17.702482+00:00 heroku[web.1]: Process exited with status 126 2018-04-12T00:39:17.716908+00:00 heroku[web.1]: State changed from starting to crashed 2018-04-12T00:39:17.644737+00:00 app[web.1]: bash: ./node_modules/.bin/nodemon.cmd: Permission denied

Opa Jonas, o nodemon parece não ter permissões para ser executado no Heroku. Você o deixou no script start do seu package.json?

Você não precisa no nodemon no heroku, tá bem?

Após realizar o deploy funciona durante uns 3 min, depois disso a aplicação caí e não volta mais, atualizo a pagina e nada.

2018-04-13T01:45:08.661195+00:00 app[web.1]: Server - 2018-04-13T01:45:08.681309+00:00 app[web.1]: Database o/ 2018-04-13T01:45:09.508009+00:00 heroku[web.1]: State changed from starting to up 2018-04-13T01:46:08.178648+00:00 app[web.1]: events.js:136 2018-04-13T01:46:08.178687+00:00 app[web.1]: throw er; // Unhandled 'error' event 2018-04-13T01:46:08.178689+00:00 app[web.1]: ^ 2018-04-13T01:46:08.178690+00:00 app[web.1]: 2018-04-13T01:46:08.178691+00:00 app[web.1]: Error: Connection lost: The server closed the connection. 2018-04-13T01:46:08.178693+00:00 app[web.1]: at Protocol.end (/app/node_modules/mysql/lib/protocol/Protocol.js:113:13) 2018-04-13T01:46:08.178694+00:00 app[web.1]: at Socket. (/app/node_modules/mysql/lib/Connection.js:109:28) 2018-04-13T01:46:08.178696+00:00 app[web.1]: at Socket.emit (events.js:164:20) 2018-04-13T01:46:08.178697+00:00 app[web.1]: at endReadableNT (_stream_readable.js:1062:12) 2018-04-13T01:46:08.178698+00:00 app[web.1]: at process._tickCallback (internal/process/next_tick.js:152:19) 2018-04-13T01:46:08.227459+00:00 heroku[web.1]: Process exited with status 1 2018-04-13T01:46:08.259522+00:00 heroku[web.1]: State changed from up to crashed 2018-04-13T01:47:05.355134+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/" host=api-node-vue.herokuapp.com request_id=ce9d0805-0871-41f5-939e-589f8469bdd5 fwd="201.6.142.144" dyno= connect= service= status=503 bytes= protocol=https 2018-04-13T01:47:06.086330+00:00 heroku[router]: at=error code=H10 desc="App crashed" method=GET path="/favicon.ico" host=api-node-vue.herokuapp.com request_id=140337c2-e7c0-4c32-a1c6-4ab1df3941b5 fwd="201.6.142.144" dyno= connect= service= status=503 bytes= protocol=https

Você criou o Profile que o heroku requer?

O erro agora parece ter sido em relação ao banco de dados. Você atualizou os dados do banco de dados?

solução!

Cara pesquisando na internet encontrei este código o qual força o Mysql a manter a conexão viva, que no caso resolveu o meu problema mas eu gostaria de ter um melhor conhecimento sobre isso, qual as vantagens e desvantagens, se é correto de fato manter este código ou a forma correta de resolver este problema.

setInterval(function () { db.query('SELECT 1'); }, 5000);

Consegui configurando o Pool Mysql também, das duas formas o servidor fica estável , não houve mais quedas da aplicação.

Oi Jonas, essa questão de setInterval é uma solução, mas não gosto muito dela. Como você está usando o plano gratuito, é normal que o heroku desligue o processo.

O pool de conexões é a melhor solução.

O setinterval faz o processo ficar de pé por que você tá sempre fazendo requisições pro serviço, mas requisições processadas que não fazem nada. Resolve? Sim, mas não vejo isso como uma boa prática.