节点应用程序的Heroku R10(引导超时)错误 - 但不使用HTTP服务器?

时间:2015-08-07 19:37:48

标签: node.js heroku twitter

我在Heroku上托管了一个简单的Node.js应用程序,它消耗了一个Twitter流。它有时很好用,但是当我查看我的日志时,我发现它已经开始使用R10 error code定期崩溃。

我已经针对此主题的其他问题进行了大量的Google搜索,like this one,而且似乎是Heroku要求您收听process.env.PORT,而不是明确设置自己的端口。很公平。

但我没有在我的代码中的任何地方设置端口,,也没有设置http.createServer,我可以.listen到一​​个。那么我该如何解决这个错误呢?有什么想法吗?

这是我的参考代码:

c:\cygwin64\bin\bash.exe -l -c "cd; /usr/bin/startxwin & sleep 5; DISPLAY=:0 ssh -Y my-remote-server xterm"

1 个答案:

答案 0 :(得分:1)

默认情况下,您有一个web进程可以在端口80上侦听。您可以通过创建Procfile将其更改为非Web进程,如:

worker: node twitter.js

然后告诉Heroku只使用你的工作人员,并且不要指望网络进程:

heroku scale web=0 worker=1

(至少,我相当肯定应该做你想做的事情。对于那些不在某个地方涉及网络服务器的应用来说非常罕见)

(另外:如果您不打算使用它,则不需要执行process.env.PORT。我们不会查看您的代码,我们只是期待任何{ {1}}进程最终绑定到web

披露:我是Heroku的Node.js平台所有者。