Задача - предусмотреть функции с отложенным запуском (есилп ользователь не ответил в течение двух минут - удалить объект чата) и функции отложенной отправки (с целью имитации процесса печати). При этом эти задержки должны быть неблокирующими. Текущая схема работы: flask-сервер обеспечивает связь вебхук-функционал бота, каждый диалог представляет из себя класс WABot, который создаётся при первом сообщении пользователя и удаляется, когда диалог можно считать закрытым. Каждый запрос к боту вызывает функцию `processing` в классе бота.
1. Как реализовать такие неблокирующие задержки отправки сообщений?
2. Как реализовать вызов функции через некоторое время после неответа пользователя?
Если нужно именно синхронно и с гарантией доставки — cron или Celery. То, что ты описал, можно сделать кроном — в БД писать задачи и срок их выполнения. Раз в минуту крон-скриптом проходить по задачам, которые уже нужно сделать и удалять их/помечать.
Я правильно понимаю, что вы предлагаете сделать так:
-мне пришло сообщение
-я должен ответить с задержкой в 10 секунд, поэтому я добавляю скрипт отправки ответа в крон как задачу через 10 секунд
Так?
unsstrennen, не совсем. У крона единица времени — одна минута. Чаще, чем раз в минуту крон запускать нельзя. Так что, меньшие интервалы нужно будет реализовывать программно или всё же использовать Celery.