и при каждой проверке в фильтрах дергать этот словарь из класса? Про перезапуск бота и потерю данных знаю(это решено), в целом нормально или нет? Знаю, что можно базу дергать, методы разные, но конкретно хочу знать про такой словарь с ролями. Скажу сразу, словарь никуда и нигде не прокидывается, а юзеры туда попадают в мидлвари один раз и если юзер есть в словаре, то пролетает мимо, поскольку уже зарегистрирован. В основном словарь нужен мне для того, чтоб по быстрому доставать роль юзера, админ, юзер или не юзер. Следом второй вопрос. Сильно ли скажется производительность, если этот словарь будет заполнен допустим 10-20 тысячами юзеров
Какую проблему должен решить этот класс?
Снять всю нагрузку с бд
базе же так тяжело...
С тем, что юзер меняет роли это я тоже решил. У меня обычный метод, который непосредственно связан добавлением юзера и в словарь и в базу. На каждое событие обычная проверка в мидлвари, если юзер в словаре, проходит проверку, отдаем хендлер, если юзера нет в словаре, записывает в бд и сразу же записывает в словарь и отдаем хендлер. Если роль поменялась, то срабатывает тот же метод добавления в бд. Словарь чисто для кэширования. Роли меняются в хендлере отлова событий в канале, покинул чат - в бд лефт и в словаре сразу же лефт, админ и админ. Синхрон работает норм. Админ фильтр в любом случае проверит на роль в канале, и если поменялась, записываем
Ну вот я так же делал примерно (сильно не вчитывался, извини). Но сейчас мне кажется, что мемоизировать функцию запроса к БД гораздо лучше. Да, у тебя будет небольшой период, когда данные неконсистентны, зато ты не прикручиваешь дополнительный источник информации. А теперь вопрос на засыпку: эти твои роли — как соотносятся с настоящими ролями в группах?
Перефразируй вопрос плез
Ты пишешь: > В основном словарь нужен мне для того, чтоб по быстрому доставать роль юзера, админ, юзер или не юзер Вопрос: это часом не про юзер/админ в группах?
Обычный бот с подпиской на канал. Подписан - доступ, нет - подпишись
А чистый lru_cache уже не модно?
Возможны варианты :)
Как же давно я говорил это волшебное "мне похуй"
На самом деле, у меня были проблемы с lru_cache на корутинах. Видимо, есть нюансы
А ты типа ток с базой играешься
нет,просто использую по назначению
И как по-твоему это "по назначению"
Обсуждают сегодня