Size: a a a

Startup never sleeps

2020 October 02

DO

Daniil Okhlopkov in Startup never sleeps
Никита Конин (IPT)
Это когда я нажимаю дизлайк, ничего не происходит, я его нажимаю ещё несколько раз, а через несколько секунд мне приходит картинок 5 без кнопок и ещё пара картинок с кнопками.
вроде все, не лагает больше.
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Соррри за длинное видео, но достаточно легко воспроизводится
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Daniil Okhlopkov
вроде все, не лагает больше.
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Можно последние секунд 30 только смотреть
источник

DO

Daniil Okhlopkov in Startup never sleeps
я видел, как ты миллион раз тыкнул на дизлайк.
источник

DO

Daniil Okhlopkov in Startup never sleeps
как эту проблему решать я пока не знаю)
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Daniil Okhlopkov
я видел, как ты миллион раз тыкнул на дизлайк.
Ага. Но я ожидаю, что он будет реакцией только к мему, к которому он относится. А не к 5 другим, которые мне отправят в будущем.
источник

DO

Daniil Okhlopkov in Startup never sleeps
Никита Конин (IPT)
Ага. Но я ожидаю, что он будет реакцией только к мему, к которому он относится. А не к 5 другим, которые мне отправят в будущем.
это и есть реакция на тот мем. Просто логика такая: получил рееакцию - отправь новый меем
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Никита Конин (IPT)
Ага. Но я ожидаю, что он будет реакцией только к мему, к которому он относится. А не к 5 другим, которые мне отправят в будущем.
По идее там должен быть какой-нибудь id сообщения с лайком, и можно по нему дедупликацию сделать.
источник

DO

Daniil Okhlopkov in Startup never sleeps
Никита Конин (IPT)
По идее там должен быть какой-нибудь id сообщения с лайком, и можно по нему дедупликацию сделать.
ага, но тогда запрос будет дольше обрабатываться, так как нужно будет в базу лезть каждый раз по клику. Поэтому я так не сделал, чтобы ответ был максимально быстрым
источник

НК

Никита Конин (IPT)... in Startup never sleeps
В итоге ответы все равно долгие)
Ну и, кажется, не обязательно в базу лезть, какого-нибудь in memory кеша с коротким сроком жизни должно хватить.
источник

DO

Daniil Okhlopkov in Startup never sleeps
сейчас логика такая:
1) Клик реакции
2) Получил вебхук от телеги
3) Запускаю async Celery таску "сохрани эту реакцию" и "убери клавиатуру/удали мем"
4) Ищу следующий мем, который можно прислать юзеру (реком система)
5) Присылаю мем
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Никита Конин (IPT)
В итоге ответы все равно долгие)
Ну и, кажется, не обязательно в базу лезть, какого-нибудь in memory кеша с коротким сроком жизни должно хватить.
Я, если что, не обосрать пришёл, а дать фидбек как потенциальный пользователь, которому нравится идея, но не удобно пользоваться реализацией.
источник

DO

Daniil Okhlopkov in Startup never sleeps
Никита Конин (IPT)
Я, если что, не обосрать пришёл, а дать фидбек как потенциальный пользователь, которому нравится идея, но не удобно пользоваться реализацией.
дада, я понял. все норм
источник

DO

Daniil Okhlopkov in Startup never sleeps
Сейчас бот у меня написал на Django, поэтому у меня все завязано на Postgres, а Redis чисто для async Celery тасок.
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Daniil Okhlopkov
сейчас логика такая:
1) Клик реакции
2) Получил вебхук от телеги
3) Запускаю async Celery таску "сохрани эту реакцию" и "убери клавиатуру/удали мем"
4) Ищу следующий мем, который можно прислать юзеру (реком система)
5) Присылаю мем
А пункт 4 в той же асинхронной таске происходит?
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Можно тогда прямо внутри неё в самом начале сделать проверку на обработку реакции в redis, через setnx. И какой-нибудь TTL в минуту, чтобы база не распухала.
источник

DO

Daniil Okhlopkov in Startup never sleeps
Никита Конин (IPT)
А пункт 4 в той же асинхронной таске происходит?
неа, выполняется тупо SQL запрос в базу. Прямо во входящем запросе на view джанги
источник

DO

Daniil Okhlopkov in Startup never sleeps
Никита Конин (IPT)
А пункт 4 в той же асинхронной таске происходит?
Вот все пишут "блиин, я думал нейронка в боте крутится". А вот если бы все-таки крутились - нужно было бы куда-то кешировать результаты, да? А не онлайн делать "предсказания-рекомендации", да?
источник

НК

Никита Конин (IPT)... in Startup never sleeps
Daniil Okhlopkov
Вот все пишут "блиин, я думал нейронка в боте крутится". А вот если бы все-таки крутились - нужно было бы куда-то кешировать результаты, да? А не онлайн делать "предсказания-рекомендации", да?
Я вот вообще 0 в нейронках, если честно. Да и вообще в рекомендательных системах. Если там досточно долгие вычисления, кажется, что надо было бы в фоне время от времени обновлять ленту рекомендаций, чтобы не тормозило. Но тогда обучение займёт какое-то время, по сравнению с мгновенной реакцией.
источник