Size: a a a

2020 November 15

ЕП

Евгений Петров... in aiogram [ru]
Dodje
звучит страшно
На самом деле, очень легко. Но я пока не осилил, как делать троттлинг только на часть хэндлеров.

В репе есть пример умного троттлинга на FSM, но там страшно че-т
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Евгений Петров
На самом деле, очень легко. Но я пока не осилил, как делать троттлинг только на часть хэндлеров.

В репе есть пример умного троттлинга на FSM, но там страшно че-т
Так есть же @dp.throttled(rate=5)
источник

ЕП

Евгений Петров... in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Так есть же @dp.throttled(rate=5)
О, его не надо отдельно настраивать, как в том примере?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Евгений Петров
О, его не надо отдельно настраивать, как в том примере?
Только сторедж любой поставить и всё
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Я с MemoryStorage прекрасно троттлю
источник

ЕП

Евгений Петров... in aiogram [ru]
В целом, я пока даже не знаю. С одной стороны, троттлить надо не всё, а выборочно, чтобы не портить общее впечатление.
С другой: как только ушлый юзер поймет, что не всё троттлится, пойдет спам
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Евгений Петров
В целом, я пока даже не знаю. С одной стороны, троттлить надо не всё, а выборочно, чтобы не портить общее впечатление.
С другой: как только ушлый юзер поймет, что не всё троттлится, пойдет спам
Так на каждый хендлер вешаешь декоратор и всё
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Можешь не на каждый
источник

ЕП

Евгений Петров... in aiogram [ru]
Надо попробовать. А то я через Cachetools общий делаю, там тоже удобно
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Евгений Петров
Надо попробовать. А то я через Cachetools общий делаю, там тоже удобно
Он прямо максимально простой, повесил декоратор и этот хендлер троттлит
источник

ЕП

Евгений Петров... in aiogram [ru]
Отлично!
источник

ЕП

Евгений Петров... in aiogram [ru]
Т.е. если я уже использую redis и RedisStorage2, то можно спокойно обвешивать этими декораторами код?
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Только имей в виду, что время - время с последней попытки юзера. Если стоит 3 секунды, а юзер каждую секунду десять секунд подряд дёргает, то не сработает ни разу, а не каждые 3 секунды, как можно подумать
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Евгений Петров
Т.е. если я уже использую redis и RedisStorage2, то можно спокойно обвешивать этими декораторами код?
Да
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Только имей в виду, что время - время с последней попытки юзера. Если стоит 3 секунды, а юзер каждую секунду десять секунд подряд дёргает, то не сработает ни разу, а не каждые 3 секунды, как можно подумать
Надо подробнее объяснить? Мне кажется я как-то неудачно написал
источник

ЕП

Евгений Петров... in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Только имей в виду, что время - время с последней попытки юзера. Если стоит 3 секунды, а юзер каждую секунду десять секунд подряд дёргает, то не сработает ни разу, а не каждые 3 секунды, как можно подумать
Это важное замечание, спасибо
источник

ЕП

Евгений Петров... in aiogram [ru]
Тогда оставлю пока своё решение
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
Именно как защита от флуда мне кажется хорошо, а как некоторая дополнительная логика - не очень. Я в кармаботе таймаут 30 секунд между повышениями кармы переписал на собственное решение в итоге
источник

<Юрий> 👨‍🔬 Чеб... in aiogram [ru]
<Юрий> 👨‍🔬 Чебышев
Именно как защита от флуда мне кажется хорошо, а как некоторая дополнительная логика - не очень. Я в кармаботе таймаут 30 секунд между повышениями кармы переписал на собственное решение в итоге
(ну там правда ещё добавил логику насчет разных целей)
источник

ЕП

Евгений Петров... in aiogram [ru]
Да, иначе юзер потыкает несколько раз, подумает, что бот не работает, и уйдет
источник