我在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"
答案 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平台所有者。