Как стать автором
Обновить

Комментарии 10

Мама, я уже почти программист! Автору спасибо.
Если с ботом будут общаться, например, раз в 3 месяца, не будет ли у него отваливаться соединение с базой? А то у меня на php такое возникало, когда с базой общение происходило редко, модифицировал немного скрипт, чтобы проверяло соединение и переподключалось, может быть в python это уже сразу предусмотрено.
Я недавно на PHP бота писал для своих задачек, но сделал его на нескольких независимых демонах, один слушает longpool и все приходящие сообщения закидывает в цепочку RabbitMQ, второй подписан на цепочку исходящих (кому и что отправить), ну естественно оттуда разгребает отправку так, что исходящие уходят с соблюдением лимита vkapi…
Ну и третий демон подписан на цепочку входящих и раскладывает ответы на исходящие.
Думаю в будущем еще пересмотрю архитектуру, ну пока мне всё нравится, когда php-скрипт подписан на цепочку, то callback функция выполняется молниеносно и есть некая параллельность процессов.

Отваливаться не должен. Точно не скажу. На своём опыте бот работал все время, что был включён. Отсоединялся по логике, только когда пк переводился в режим сна. Если на каком то хосте, то не должен вообще никак. Единственное что pythonanywhere, если программа не работает больше ~3 часов, только он ее отключает

Статья уровня "я прочитал документацию и смотрите что у меня получилось".


Код плохой, никакие нормальные современные библиотеки не используются. Нет миграций, никакой нормальной обертки над базой. Хороший пример как писать на python не надо.

Какие современные библиотеки посоветуешь?

Минимум: alembic для миграций, для работы с БД — sqlalchemy.
Чаще всего сейчас такие приложения пишут используя asyncio и aiopg.

Не везде и не всегда нужна ORM. А aiopg вообще сложно применить для работы с mysql

MySQL можно и нужно заменить на postgresql. Вообще не понимаю необходимости сейчас использовать MySQL, когда postgresql. Только если это старый легаси код.


В sqlalchemy orm не обязателен. Там есть прекрасный query builder который намного лучше и гибче.

Хочу обратить внимание читающих, что писать except без указания исключения (или указывая Exception или BaseException) — очень плохая практика

Если я исправлю на нужную ошибку, то вопрос отпадет? Понимаю что идея была плохая.
Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории