@xpril

Как сделать таймер на бд sqlite3?

Здравствуйте.
Есть такая операция в моём боте - "добыча угля".
И мне надо реализовать её так, что бы раз в час выдавалось определённое количество угля, а если это делать через threading, то выдаёт ошибку.
Если знает кто, то помогите, пожалуйста.
  • Вопрос задан
  • 150 просмотров
Решения вопроса 1
AlexNest
@AlexNest Куратор тега Python
Работаю с Python/Django
Как сделать таймер на бд sqlite3?

sqlite3, как и любая другая база данных, просто хранилище данных. Как уже сказали в комментариях - реализовывать нужно средствами языка.
Самый простой и наименее затратный с точки зрения ресурсов, вариант - высчитывать добытый уголь при проверке баланса.
В общих чертах схема следующая:
юзер "покупает шахту" (т.е. начинает игру), в базу записывается дата и время.
При вводе соответствующей команды (например /склад) из базы берется время последнего обращения (для только-что начавших - пусть это будет время "покупки") и сравнивается с текущим. На основе количества пройдённых часов увеличивается баланс.
При этом актуализировать баланс нужно будет не только при "проверке" пользователем но и как минимум при расходных операциях, учитывайте это.

Второй вариант - используйте модули shelude / aioschedule (для синхронных/асинхронных ботов, соответственно). для ежечасного обновления. Однако учитывайте, что это потребует большего количества ресурсов.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы