Уведомления

Группа в Telegram: @pythonsu

#1 Июль 28, 2019 15:15:05

danker038
Зарегистрирован: 2019-07-11
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

heroku

Здравствуйте!
У меня вот такая проблема:

=== web (Free): python Counter.py (1)
web.1: crashed 2019/07/25 08:41:53 +0300

если только запустил, все чудесно, правда, хватает только на минуту, потом краш.
Как эту назойливую проблему исправить?

Отредактировано danker038 (Июль 28, 2019 15:16:23)

Офлайн

#2 Июль 28, 2019 16:28:54

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

heroku

Набери в консольном клиенте heroku

heroku logs
Выложи исходник скрипта и что пишет в логах.



Офлайн

#3 Март 30, 2020 03:43:42

danker038
Зарегистрирован: 2019-07-11
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

heroku

2020-03-30T00:08:27.832598+00:00 heroku: State changed from crashed to down


2020-03-30T00:09:35.581914+00:00 heroku: State changed from starting to crashed
2020-03-30T00:09:35.659843+00:00 heroku: State changed from crashed to starting

2020-03-30T00:10:42.351498+00:00 heroku: State changed from starting to crashed
2020-03-30T00:15:35.281965+00:00 heroku: at=error code=H10 desc=“App crashed” method=GET path=“/” host=askador-bot.herokuapp.com request_id=1****** fwd
=“********” dyno= connect= service= status=503 bytes= protocol=https
2020-03-30T00:15:35.600707+00:00 heroku: at=error code=H10 desc=“App crashed” method=GET path=“/favicon.ico” host=askador-bot.herokuapp.com request_id=59e8***********************6f6 fwd=“1*******” dyno= connect= service= status=503 bytes= protocol=https
2020-03-30T00:35:21.580268+00:00 heroku: State changed from crashed to starting


2020-03-30T00:36:27.518627+00:00 heroku: State changed from starting to crashed

Офлайн

#4 Март 30, 2020 07:30:42

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

heroku

Вот попробуй открыть ссылку
https://askador-bot.herokuapp.com/favicon.ico

Должна либо картинка возвратиться в окне браузера, либо html-страница с сообщением File Not Found. У тебя же происходит ошибка внутри приложения и сервер даже такой запрос обработать не может. Такие ошибки чаще всего возникают из-за опечаток. Проверь код, не пропустил ли ты где-нибудь скобки какие-нибудь. И лучше всего проверять веб-приложение, запустив его локально. Если оно с такими ошибками, оно сразу выпадет и скажет об этом более подробно, чем на внешнем хостинге.



Отредактировано py.user.next (Март 30, 2020 07:31:32)

Офлайн

#5 Март 30, 2020 14:07:24

danker038
Зарегистрирован: 2019-07-11
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

heroku

переходя по ссылке, выскакивает
Application error
An error occurred in the application and your page could not be served. If you are the application owner, check your logs for details. You can do this from the Heroku CLI with the command


локально все работает, а через heroku глухо

Может что то с procfile-ом:

worker: python3 bot.py

heroku ps:scale worker=1

Отредактировано danker038 (Март 30, 2020 16:59:05)

Офлайн

#6 Март 30, 2020 22:28:09

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

heroku

danker038
Может что то с procfile-ом:
Ну, ты его с большой буквы назвал?

Создай файл app.py в корне репозитория с простым маршрутом, который выдаёт hello world

В Procfile запиши только одну строку
web: gunicorn app:app

Потом это всё запусти. Убедись, что на Heroku по этому маршруту всё выводится. Дальше своё приложение можешь подравнивать постепенно, чтобы запустился код из bot.py .



Отредактировано py.user.next (Март 30, 2020 22:29:17)

Офлайн

#7 Март 31, 2020 15:05:45

danker038
Зарегистрирован: 2019-07-11
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

heroku


py.user.next
В Procfile запиши только одну строку
web: gunicorn app:app

Выдает такую штуку:
bash: gunicorn: command not found

сейчас поставил цикл на час с отправкой мне сообщения “Hi”
если все будет работать, то действительно проблема в коде

Офлайн

#8 Март 31, 2020 20:08:50

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

heroku

danker038
Выдает такую штуку:
bash: gunicorn: command not found

В файле requirements.txt в корне репозитория должна быть строка (добавляешь её, если нет)
gunicorn==19.6.0



Офлайн

#9 Апрель 1, 2020 12:41:56

danker038
Зарегистрирован: 2019-07-11
Сообщения: 17
Репутация: +  0  -
Профиль   Отправить e-mail  

heroku

все работает, спасибо!
Я хочу внедрить базу данных на хостинг без потери данных, если бот уходит в спящий режим(сейчас такая проблема - храню данные локально, а при перезагрузки бота на серверах хероку все они пропадают).
Подскажите какую бы хостинг-базу данных использовать?

Офлайн

#10 Апрель 1, 2020 21:06:06

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 9726
Репутация: +  843  -
Профиль   Отправить e-mail  

heroku

danker038
Подскажите какую бы хостинг-базу данных использовать?
Там выбора нет на бесплатном тарифе. Либо ты ставишь на Heroku его внутреннюю СУБД PostgreSQL, которая сильно ограничена, но подходит для мелких хранений, либо ты используешь сетевую СУБД на MongoDB (это noSQL, где хранишь всё в JSON и ищешь данные потом соответственно - без SQL-запросов) и Heroku будет к ней подключаться по длинной ссылке.

Так что попробуй для начала PostgreSQL поставить. Я думаю, тебе её хватит для хранения состояний робота. Второй вариант, с MongoDB, я пока не пробовал, только базу создал, но там нюансов много всяких с её настройкой. Но на первый взгляд она вполне подходит для больших хранений и при этом всё бесплатно.

Если же ты платишь, то можешь и прямо на Heroku купить право на использование СУБД. Платно там открываются и размеры базы, и разновидности СУБД типа MySQL.



Отредактировано py.user.next (Апрель 1, 2020 22:57:03)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version