Size: a a a

Боты на Telegraf

2020 November 09

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
ik
короче пока вот такую штуку не понимаю
я в базе хочу хранить таблицу с полями user_id, authorized, customField, ...
ну и соотвественно по каждому юзеру нужно иметь быстрый доступ к этим данным
мне их получается надо в сессии держать?
не оч понимаю как сессия должна синхронизироваться с бд
например, залетает новый юзер в бот, мне для него нужно будет и в сессию, и в бд занести authorized?
на каждый апдейт создается контекст по-новой, который имплементирует и сессии, и весь обвес контекста прочий, аля i18n
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
в том числе и модель бд туда прокидывается bot.context.bd = yourORM.shit()
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
так что можешь хоть вообще ничего не разделять вилкой, просто пиши функционал бота и в необходимых проверяй на месте авторизацию
источник

i

ik in Боты на Telegraf
на каждый апдейт в бд обращаться?😨
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
ctx.db.findOne({ telegramId: ctx.from.id }).then(u => u.grant ? yep() : nope())
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
как наберется дофига проверок – вынесешь в мидлварю да и все
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
ik
на каждый апдейт в бд обращаться?😨
всех 100500 пользователей хоронить в памяти?
источник

i

ik in Боты на Telegraf
нафига сессии тогда?)
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
а сессии че, не дергают каждый раз бд?
источник

i

ik in Боты на Telegraf
получается они просто сахар для запросов к бд?
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
это у тебя сессия твою бд дернет и потом еще ты сам доп инфу дернешь
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
ik
получается они просто сахар для запросов к бд?
скорее соль
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
если атомарность в памяти сможешь – хорони в памяти горячие данные, но репликацию сделать довольно сложно с диском будет, собственно редиска это и решает
источник

OS

Oscar S in Боты на Telegraf
Josh Dies 🥭 [man go]
если атомарность в памяти сможешь – хорони в памяти горячие данные, но репликацию сделать довольно сложно с диском будет, собственно редиска это и решает
не так
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
энивей лучший совет это делать проще и привлекать меньше прослоек/абстракций, так меньше ошибок наделаете
источник

OS

Oscar S in Боты на Telegraf
на orm вешаешь lru cache на get запросы, если идет мутабелный запрос upd, del, то удаляется из кэша
источник

OS

Oscar S in Боты на Telegraf
сессии для внутренней работы telegraf и оптимизации чучуть
источник

JD

Josh Dies 🥭 [man go]... in Боты на Telegraf
если приоритет на чтение
источник

OS

Oscar S in Боты на Telegraf
Josh Dies 🥭 [man go]
если приоритет на чтение
так первый запрос по id холодный, потом из lru
источник

OS

Oscar S in Боты на Telegraf
таким образом сохраняется целостность и скорость данных
источник