Telegram bot. Как реализовать параллельное выполнение задач?
В общем я пишу игрового telegram бота и столкнулся с проблемой. Хочу реализовать механику перехода из пункта A в пункт B, переход занимает некоторое реальное время ,скажем пять минут, и когда эти пять минут истекут, бот должен отправить пользователю уведомление о прибытии на место (при этом, ботом могут пользоваться другие пользователи). Очевидно, что нужна штука, которая постоянно сверяется со значением времени, отведенного на переход из A в B (значение в БД) и рассылает пользователям уведомления по истечении. Первое, что пришло в голову - потоки. Но ведь если бот завершит работу (родительский процесс), то завершат работу и все потоки (поток с функцией проверки значения)?
Прошу подсказать направление, в котором стоит двигаться в плане решения этой проблемы, спасибо
Реализовывал подобное таким способом:
В базе хранятся нужные значения, раз в минуту(например) в celery запускается таск, который ищет в БД ID людей, которым бот должен выслать некое уведомление. Если таковые имеются - то по API передается боту список этих ID, и бот устраивает рассылку.
Сам бот реализован был по такой схеме: https://github.com/eternnoir/pyTelegramBotAPI/blob...
Просто добавил еще одну ручку, которая принимает POST запрос со списком ID пользователей.
1) не использовать потоки в питоне
2) для очередей использовать celery, huey, rq (лучший способ)
4) запускать несколько воркеров/процессов
3) можно использовать asyncio, тогда полностью надо переделать программу под асинхронное программирование, не использовать time.sleep и блокирующие операции
Спасибо за ответ, а есть ли возможность использовать очередь только для одно пользователя бота, без остановки основной работы бота? (прием запросов и тд)