169 похожих чатов

Нормальная ли практика создать класс, внутри создать словарь с ролями

и при каждой проверке в фильтрах дергать этот словарь из класса? Про перезапуск бота и потерю данных знаю(это решено), в целом нормально или нет? Знаю, что можно базу дергать, методы разные, но конкретно хочу знать про такой словарь с ролями. Скажу сразу, словарь никуда и нигде не прокидывается, а юзеры туда попадают в мидлвари один раз и если юзер есть в словаре, то пролетает мимо, поскольку уже зарегистрирован. В основном словарь нужен мне для того, чтоб по быстрому доставать роль юзера, админ, юзер или не юзер. Следом второй вопрос. Сильно ли скажется производительность, если этот словарь будет заполнен допустим 10-20 тысячами юзеров

16 ответов

21 просмотр

Какую проблему должен решить этот класс?

Riz- Автор вопроса

базе же так тяжело...

Riz- Автор вопроса

С тем, что юзер меняет роли это я тоже решил. У меня обычный метод, который непосредственно связан добавлением юзера и в словарь и в базу. На каждое событие обычная проверка в мидлвари, если юзер в словаре, проходит проверку, отдаем хендлер, если юзера нет в словаре, записывает в бд и сразу же записывает в словарь и отдаем хендлер. Если роль поменялась, то срабатывает тот же метод добавления в бд. Словарь чисто для кэширования. Роли меняются в хендлере отлова событий в канале, покинул чат - в бд лефт и в словаре сразу же лефт, админ и админ. Синхрон работает норм. Админ фильтр в любом случае проверит на роль в канале, и если поменялась, записываем

Riz
С тем, что юзер меняет роли это я тоже решил. У ме...

Ну вот я так же делал примерно (сильно не вчитывался, извини). Но сейчас мне кажется, что мемоизировать функцию запроса к БД гораздо лучше. Да, у тебя будет небольшой период, когда данные неконсистентны, зато ты не прикручиваешь дополнительный источник информации. А теперь вопрос на засыпку: эти твои роли — как соотносятся с настоящими ролями в группах?

Riz- Автор вопроса
Riz
Перефразируй вопрос плез

Ты пишешь: > В основном словарь нужен мне для того, чтоб по быстрому доставать роль юзера, админ, юзер или не юзер Вопрос: это часом не про юзер/админ в группах?

Riz- Автор вопроса
Groosha
Ты пишешь: > В основном словарь нужен мне для того...

Обычный бот с подпиской на канал. Подписан - доступ, нет - подпишись

А чистый lru_cache уже не модно?

Возможны варианты :)

Groosha
Возможны варианты :)

Как же давно я говорил это волшебное "мне похуй"

Mikhail Smolnikov
А чистый lru_cache уже не модно?

На самом деле, у меня были проблемы с lru_cache на корутинах. Видимо, есть нюансы

Riz- Автор вопроса
Добрый
базе же так тяжело...

А ты типа ток с базой играешься

Riz
А ты типа ток с базой играешься

нет,просто использую по назначению

Riz- Автор вопроса
Добрый
нет,просто использую по назначению

И как по-твоему это "по назначению"

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта