Найти - Пользователи
Полная версия: heroku
Начало » Python для новичков » heroku
1 2
danker038
Здравствуйте!
У меня вот такая проблема:

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

если только запустил, все чудесно, правда, хватает только на минуту, потом краш.
Как эту назойливую проблему исправить?
py.user.next
Набери в консольном клиенте heroku
heroku logs
Выложи исходник скрипта и что пишет в логах.
danker038
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
py.user.next
Вот попробуй открыть ссылку
https://askador-bot.herokuapp.com/favicon.ico

Должна либо картинка возвратиться в окне браузера, либо html-страница с сообщением File Not Found. У тебя же происходит ошибка внутри приложения и сервер даже такой запрос обработать не может. Такие ошибки чаще всего возникают из-за опечаток. Проверь код, не пропустил ли ты где-нибудь скобки какие-нибудь. И лучше всего проверять веб-приложение, запустив его локально. Если оно с такими ошибками, оно сразу выпадет и скажет об этом более подробно, чем на внешнем хостинге.
danker038
переходя по ссылке, выскакивает
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
py.user.next
danker038
Может что то с procfile-ом:
Ну, ты его с большой буквы назвал?

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

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

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

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

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

сейчас поставил цикл на час с отправкой мне сообщения “Hi”
если все будет работать, то действительно проблема в коде
py.user.next
danker038
Выдает такую штуку:
bash: gunicorn: command not found

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

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

Если же ты платишь, то можешь и прямо на Heroku купить право на использование СУБД. Платно там открываются и размеры базы, и разновидности СУБД типа MySQL.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB