Там будет синхронная задача, которая выполняется относительно длительное время, необходимо будет реализовать очередь запросов с ожиданием. Куда для этого смотреть? Celery решает подобные задачи?
Селери это фреймворк управления фоновыми задачами. Однако подразумевается что задачи уже подключены к какой-то очереди, да
Подскажите пожалуйста ещё такой момент, у меня задачи по сути не будут фоновые, так как юзеру придется дожидаться ответа сервера в синхронной очереди, будет ли существенная разница между Джанго и фастапи в производительности?
Про разницу в производительности не могу сказать. Хотя считается что фастапи быстрее. Однако тебе не обязательно так синхронно обрабатывать таски. Ты можешь вынести их в фон и нотифицировать пользователя по их завершении. Это более предпочтительно, чем вешать воркеры сервера на неопределенный срок
а что будет? просто долгая обработка запроса? мб тогда лучше попросить клиент позвонить чуть позже, когда таска выполнится?)
Да, я это понимаю, но не понимаю как а таком случае пользователь получит ответ от сервера если речь идёт про рест апи, то есть как его нотифицировать
Тоже думал над этим. Некая рест апишка для работы с телеграм ботом, так как у него нет внешнего API для нормальной работы, но его использование крайне необходимо.
существует 3 способа - push-, pull- и bidirectional-соединения. Современные браузеры поддерживают пуши от сервера. бидирект это вебсокет как правило и его уже используют в асинкрежиме. Погугли примеры типа такого https://suryasankar.medium.com/how-to-setup-basic-web-push-notification-functionality-using-a-flask-backend-1251a5413bbe или ты можешь пуллить из браузера - поставь эндпоинт который браузер будет опрашивать на предмет завершенности задачи или готовности данных.
можешь сделать апишку и связать ее с ботом через очередь.
Хорошо, буду изучать вопрос, спасибо за ответ
К этой части такой вопрос: Могу ли я использовать фастапи и его функционал по фоновым задачам для создания очередей для этого. То есть чтоб на стороне фреймворка обрабатывать запросы, создавать тачки, а телеграм-пуллы будут у себя проверять наличие активных тасков фастапи (пуллы работают о дельно) и выполнять их.
С вебхуком ты и бота можешь внутрь фастапи засунуть
это знаю, но вебхук сделать не могу, Telethon его не умеет
А теперь серьёзно: для ботов есть апи. Боты не могут взаимодействовать с ботами - это известное всем ограничение сделанное специально. Если ты пытаешься его обойти - ты нарушаешь правила телеги. Единственное оправдание тут могло быть - согласование с владельцами бота
согласовываться это будет в любом случае, ботов будет несколько, с одним уже решили вопрос, остальные хз. Вопрос в архитектуре приложения на данный момент
ну а с точки зрения архиетктура, тут телега не нужна просто.
Обсуждают сегодня