Comments (3)
Хей. Действительно, 'Callback API' является хорошим (наверное, даже единственным) вариантом. Но только для бесплатных вариантов хостинга вроде heroku или pythonanywhere. Если же в твоём распоряжении появляется сервер - скорее всего 'Long Poll API' будет работать как минимум не хуже. Я знаю как минимум jino, который позволяет без нервов создать себе сервер за 99р/мес. Который будет работать без превышения каких-либо лимитов.
Так или иначе, идея интересная. Мне кажется, для этого оптимальнее всего выделить из backends.vkontakte общую логику для 'Long Poll' и 'Callback', и создать два подкласса, которые будут реализовывать получение событий через 'Long Poll' или 'Callback' - 'VkontakteLongPoll' и 'VkontakteCallback', ну и для обратной совместимости сделать 'Vkontakte' == 'VkontakteCallback'.
Не знаю, когда мои руки могут добраться до этого. Если хочешь - можешь попробовать реализовать эту логику 👌
from kutana.
Это полезная фича в том числе и для Pay-as-you-use модели на том же Jelastic.
Также это может позволить проще реализовать горизонтальное масштабирование.
from kutana.
Не уверен на счёт горизонтального масштабирования - LongPoll гораздо предпочтительнее для крупных проектов. Там все события группируются сервером Вконтакте перед отправкой, да и бот может запрашивать события по мере освобождения своих ресурсов. С Callback все запросы наваливаются неконтролируемой кучей + необработанные запросы отправляются по несколько раз.
Даже с longpoll никто не мешает быстро получать события на одном сервере и складывать их, например, в redis, чтобы другие сервера или процессы обрабатывали их. Это звучит как достаточно простая схема. Но подавляющее число проектов не будет нуждаться в подобных мерах. Как минимум из-за относительно небольшого лимита на количество запросов к API Вконтакте.
Поэтому юзкейсы для использования Callback - это скорее проекты на бесплатных хостингах, как мне кажется. Да и будет ли разница между Callback и Longpoll для Pay-as-you-use тарифов?
from kutana.
Related Issues (20)
- Use bot mention (example: "@bot_name") as default prefix
- [Вопрос] Реализация проверки триггера определенного декоратора во всех плагинах. HOT 3
- [BUG] Перестает тригериться один из декораторов on_payloads
- [Вопрос] Не делать ожидание в некоторых плагинах. HOT 1
- Add the ability to trigger commands without a prefix HOT 1
- on_commands does not ignore prefix when bot mentioned in private messages
- Возможность добавлять описание аттачей при их загрузке (Telegram) HOT 1
- Инкапсулируйте плагины в поддиректории HOT 1
- Добавьте больше декораторов - модификаторов доступа HOT 7
- Более гибкая система команд HOT 1
- Переписать клиентский код с aiohttp на httpx HOT 2
- Добавить `.get` метод для Document в хранилищах HOT 1
- Упразднить и удалить части библиотеки, связанные с i18n
- Обновить метод рекурсивной загрузки плагинов
- Создание инфраструктуры HOT 3
- Добавьте Discord backend
- Добавить новый декоратор "schedule" HOT 4
- Добавить дополнительную защиту от лимита в групповых чатах. HOT 1
- Ошибка при обработке update HOT 3
- Производительность httpx почти в 2 раза ниже чем aiohttp HOT 3
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from kutana.