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

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

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

16 ответов

5 просмотров

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Эх кто-то пришел и весь праздник испортил :( You need complex FBX scene importing setup to change things on import? good luck with that. You need navigation and pathfinding? g...
Serg Gini
5
Всем привет! Подскажите. Я написал приложение на Delphi 10.2 Tokyo под Windows 10. И передо мной стал вопрос о том чтобы сделать это приложение кроссплатформенным (под Linux и...
Дмитрий Завгородний
24
Какого хера? /Sources/App/Modules/User/Models/UserLinkApple.swift:21:20: warning: stored property '_id' of 'Sendable'-conforming class 'UserLinkApple' is mutable @ID(...
Alexander Sherbakov
14
Привет всем. Подскажите где можно посмотреть, какая версия электрон, поддерживает версии windows? Некий changelog. Мне бы желательно, поддержку 7,8,10... latest, как понимаю и...
Anonym Squad
21
Почему стало ломаться на D11? "739002.86400000' is not a valid timestamp" function IncDateTime(aStamp:TTimeStamp;aKind:TTriggerKind;aInterval:Integer):TDateTime; //aStamp = 2...
Катерина Свиридова
8
У тебя в конфиге нигде нет deny all; или вообще любого deny?
Alexander Sherbakov
10
Портфолио: Зовут меня Александр, мне 36 лет. Город Пушкино. Общий рабочий стаж: ~14 лет Уровень квалификации: Senior Full-stack developer Где прочесть мой код? https://github....
Magic
10
Есть ли смысл устраиваться на 1с ? Даст это плюс в дальнейшем трудоустройстве на php? Просто у меня в городе вакансий на пхп нету. Или лучше удаленно искать. Опыта работы нету...
Azamat
14
Ребят, чет я уже не догоняю... Крч в коде на асм там происходит нечто вроде a+число (a+1, a+2 и т.д.). Но почему строка lea ecx, [edx+1] работает как a+1?? В edx берется адрес...
Alan 🔝 Бэброу
4
Карта сайта