Задать вопрос
@xpril

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

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

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

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

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

Похожие вопросы