Сбой Heroku dynos - PullRequest
       1

Сбой Heroku dynos

1 голос
/ 06 мая 2020

Я прочитал много вопросов здесь, в stackoverflow, но не могу решить свою проблему.

У меня есть простой python сценарий (только печать ('Hello World')), и я отправляю это в Heroku, мои файлы:

Procfile: (я считаю, что проблема здесь)

web: python index.py

heroku logs --tail

2020-05-06T16:06:38.000000+00:00 app[api]: Build started by user <myemail>
2020-05-06T16:07:00.948412+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-06T16:07:00.572714+00:00 app[api]: Release v11 created by user <myemail>
2020-05-06T16:07:00.572714+00:00 app[api]: Deploy 4053de7f by user <myemail>
2020-05-06T16:07:07.099124+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-06T16:07:07.103524+00:00 heroku[web.1]: State changed from crashed to starting
2020-05-06T16:07:07.002972+00:00 app[web.1]: Hello World
2020-05-06T16:07:08.000000+00:00 app[api]: Build succeeded
2020-05-06T16:07:13.797877+00:00 heroku[web.1]: State changed from starting to crashed
2020-05-06T16:07:13.619779+00:00 app[web.1]: Hello World

heroku ts

Free dyno hours quota remaining this month: 550h 0m (100%)
For more information on dyno sleeping and how to upgrade, see:
https://devcenter.heroku.com/articles/dyno-sleeping

=== web (Free): python index.py (1)
web.1: crashed 2020/05/06 13:07:13 -0300 (~ 4m ago)

Как мы видим, «Hello World» в журнале показывает, что скрипт запускается, когда я отправляю его на сервер. Но после этого дино вылетает

1 Ответ

0 голосов
/ 06 мая 2020

в случае Web dyno приложение должно привязаться к порту, предоставленному Heroku и определенному в переменной env $ PORT, где оно будет получать входящие запросы.

Если вам нужен HTTP-трафик c попробуйте создать узел worker

Например, чтобы создать простое приложение Flask, которое может получать запросы:

from flask import Flask
import os
import logging

try:
  app = Flask(__name__)
except Exception as e:
  logging.exception("Error at startup")

@app.route('/test')
def test():
 logging.info('/test')
 return "test Ok"

if __name__ == '__main__':
app.run(debug=False, port=int(os.environ.get("PORT", 5000)), host='0.0.0.0')

Порт устанавливается с помощью $ PORT на Heroku, а локально по умолчанию 5000

...