Heroku 上的龙卷风服务器。错误 R10(引导超时)
Tornado server on Heroku. Error R10 (Boot Timeout)
我正在尝试使用 tornado 服务器部署我在 Python 中编写的 Web 应用程序。
在我的 app.py
我有
if __name__ == '__main__':
server = tornado.httpserver.HTTPServer(Application())
server.listen(4200, address='0.0.0.0')
tornado.ioloop.IOLoop.instance().start()
然后我有一个 Procfile web: python app.py
当我检查日志时,我看到错误
2018-08-08T02:20:54.117821+00:00 heroku[web.1]: Starting process with command `python app.py`
2018-08-08T02:20:57.000000+00:00 app[api]: Build succeeded
2018-08-08T02:21:54.891301+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2018-08-08T02:21:54.891301+00:00 heroku[web.1]: Stopping process with SIGKILL
2018-08-08T02:21:55.027586+00:00 heroku[web.1]: Process exited with status 137
2018-08-08T02:21:55.049407+00:00 heroku[web.1]: State changed from starting to crashed
2018-08-08T02:21:55.051776+00:00 heroku[web.1]: State changed from crashed to starting
2018-08-08T02:21:59.562357+00:00 heroku[web.1]: Starting process with command `python app.py`
我不太了解我在做什么,尤其是 Procfile
,所以我猜问题出在那里。
Heroku tells you which port you should bind to via the PORT
environment variable。您应该使用它而不是硬编码端口,例如
import os
port = int(os.getenv('PORT', 4200))
server.listen(port, address='0.0.0.0')
这将使用 PORT
环境变量(如果存在)(例如在 Heroku 上),如果不存在(例如在您的开发机器上)则返回到 4200。
我正在尝试使用 tornado 服务器部署我在 Python 中编写的 Web 应用程序。
在我的 app.py
我有
if __name__ == '__main__':
server = tornado.httpserver.HTTPServer(Application())
server.listen(4200, address='0.0.0.0')
tornado.ioloop.IOLoop.instance().start()
然后我有一个 Procfile web: python app.py
当我检查日志时,我看到错误
2018-08-08T02:20:54.117821+00:00 heroku[web.1]: Starting process with command `python app.py`
2018-08-08T02:20:57.000000+00:00 app[api]: Build succeeded
2018-08-08T02:21:54.891301+00:00 heroku[web.1]: Error R10 (Boot timeout) -> Web process failed to bind to $PORT within 60 seconds of launch
2018-08-08T02:21:54.891301+00:00 heroku[web.1]: Stopping process with SIGKILL
2018-08-08T02:21:55.027586+00:00 heroku[web.1]: Process exited with status 137
2018-08-08T02:21:55.049407+00:00 heroku[web.1]: State changed from starting to crashed
2018-08-08T02:21:55.051776+00:00 heroku[web.1]: State changed from crashed to starting
2018-08-08T02:21:59.562357+00:00 heroku[web.1]: Starting process with command `python app.py`
我不太了解我在做什么,尤其是 Procfile
,所以我猜问题出在那里。
Heroku tells you which port you should bind to via the PORT
environment variable。您应该使用它而不是硬编码端口,例如
import os
port = int(os.getenv('PORT', 4200))
server.listen(port, address='0.0.0.0')
这将使用 PORT
环境变量(如果存在)(例如在 Heroku 上),如果不存在(例如在您的开发机器上)则返回到 4200。