limontasher
@limontasher
Начинающий программист

Как реализовать систему изменения данных в базе данных?

Пишу игрового бота на python + aiogram + sqlite. Хочу узнать как лучше реализовать одну систему, объяснить не могу, приведу пример:
Идет обработка сообщений от пользователя в одном скрипте, есть майнинг фермы у пользователя, которые раз в час должны добавлять пользователю криптовалюту и обновлять это все в базе данных.
Написать где то эту систему в одном скрипте прям так - не вариант, бот будет приостанавливаться, можно прибегнуть к мультипоточности, или к изучению асинхронности, а может есть вариант лучше, подскажите пожалуйста.
  • Вопрос задан
  • 188 просмотров
Решения вопроса 1
Vindicar
@Vindicar
RTFM!
Ну во-первых, если ты используешь aiogram, то про многопоточность лучше забыть. Асинхронность с многопоточностью сочетается довольно плохо. Это возможно, но нетривиально, и новичкам лучше не связываться.
Во-вторых, дай угадаю - задержку в цикле фарминга реализуешь через time.sleep()? Если да, то конечно, цикл асинхронной программы останавливается на это время. Вот почему предусмотрена функция asyncio.sleep(), которая может приостановить выполнение отдельной корутины, не трогая остальных.
В-третьих, если тебе нужно выполнить корутину и дождаться результата её выполнения - используй оператор await. Если же тебе нужно запланировать выполнение корутины и идти дальше, не дожидаясь её результата (выполнение "как только, так сразу") - лучше использовать asyncio.get_event_loop().create_task().

Думаю, остальное сможешь додумать сам.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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