Size: a a a

Яндекс.Диалоги (сообщество разработчиков)

2020 May 23

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
По идеи я.ф всегда должна быть быстрее.
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Aleksandr Sergeevich
Не понял. Это ведь не может говорить о том, что нода засыпает. Вы перегрузили запросами - это ведь другое.
Если глобальная переменная затерлась, значит нода заснула
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
Если глобальная переменная затерлась, значит нода заснула
Аа, глобальная. Понял. Так она так и данные пользователя потеряет промежуточные.
Через сколько вы заметили засыпание?
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Я начинаю понимать почему ввели переменные в отправляемый джейсон)
источник

ПК

Павел Капля... in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
У меня замеры такие: функция в среднем отрабатывает за 300-400мс, сам ответ от хероку у меня приходит за +- 150мс
это если на стороне хероку навык горячий, а если нет, хероку его выгрузил, то, в контексте нашей дискуссии про проксирование, получим таймаут.
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Ðаниил Хрøмøв
Нет никакого ограничения по времени, мой бот в ВК висит уже несколько месяцев без сбоев
А хостинг интересный.
Не вижу только каких-нибудь графиков нагрузки или использования памяти при запуске функции. Не предусмотрено да?
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Павел Капля
это если на стороне хероку навык горячий, а если нет, хероку его выгрузил, то, в контексте нашей дискуссии про проксирование, получим таймаут.
Это да. Но пинги от яндекса автоматом держат навык на хероку горячим.
источник

ПК

Павел Капля... in Яндекс.Диалоги (сообщество разработчиков)
Так суть идеи проксирования была в том, чтобы убрать пинги с хероку и отвечать на них проксей.
источник

VP

Vitaliy Potapov in Яндекс.Диалоги (сообщество разработчиков)
Павел Капля
Так суть идеи проксирования была в том, чтобы убрать пинги с хероку и отвечать на них проксей.
Для меня главная цель проксирования в другом: чтобы при апдейте приложения на хероку всех пользователей навыка не выкидывало по таймауту.
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Павел Капля
Так суть идеи проксирования была в том, чтобы убрать пинги с хероку и отвечать на них проксей.
ну так кидаем запрос на внешний сервис через я-функцию с таймаутом ответа 2 секунды... если не успел за 2 секунды отвечаем в я-функции, что мол. спасибо что разбудили, повторите ваш запрос я не услышал
источник

ПК

Павел Капля... in Яндекс.Диалоги (сообщество разработчиков)
Т.е. сейчас пользователь получает ошибку если навык не ответил за 3с, а будет получать аналогичную по бесполезности заглушку, если он не ответит за 2? Это же ухудшение пользовательского опыта. В чем смысл?
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Павел Капля
Т.е. сейчас пользователь получает ошибку если навык не ответил за 3с, а будет получать аналогичную по бесполезности заглушку, если он не ответит за 2? Это же ухудшение пользовательского опыта. В чем смысл?
ну смысл как я понял разбудить сервис, если придумать как контролить, что он не спит то и не нужно 2 секунды, уже просто прокси.
с учетом сохранения состояния, уже не проблема особо будет... просто на первом запросе и запуске навыка проверять спит или нет
ну и пинги обрабатывать на функции. ну, а часы на херохосте не тратятся
источник

ÐХ

Ðаниил Хрøмøв... in Яндекс.Диалоги (сообщество разработчиков)
Aleksandr Sergeevich
А хостинг интересный.
Не вижу только каких-нибудь графиков нагрузки или использования памяти при запуске функции. Не предусмотрено да?
Нет, но нам этого пока не надо.
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Vitaliy Potapov
Для меня главная цель проксирования в другом: чтобы при апдейте приложения на хероку всех пользователей навыка не выкидывало по таймауту.
Погодите. То есть пользователь может находиться в любом месте локации внутри навыка, вы подгружаете обновление - переменные окружения сбрасываются и достижения теряются. Какой смысл ему слать типа - подождите мы обновляемся или я вас не расслышал.
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
ну так кидаем запрос на внешний сервис через я-функцию с таймаутом ответа 2 секунды... если не успел за 2 секунды отвечаем в я-функции, что мол. спасибо что разбудили, повторите ваш запрос я не услышал
Даа, можно промежуточный ответ по сценарию подготовить)
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Aleksandr Sergeevich
Даа, можно промежуточный ответ по сценарию подготовить)
Ну да в этом и смысл. Чтобы не говорило, мол навык не отвечает. уже лучше
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Andrew Zahalski
Ну да в этом и смысл. Чтобы не говорило, мол навык не отвечает. уже лучше
Кстати, идея для яндекс диалогов сделать это на уровне платформы. Так же в вебинтерфейсе - дефолтный ответ навыка вместо - навык не ответил. Даже можно расширить - по переданным в контексте данным последний раз  отвечать по разному если навык не ответил. Хороший кейс)
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Можно даже в джейсоне выделить отдельное свойство для ответа если в следующий запрос навык не ответил. Как вам такое Павел Капля?)
источник

AS

Aleksandr Sergeevich in Яндекс.Диалоги (сообщество разработчиков)
Павел Капля
Т.е. сейчас пользователь получает ошибку если навык не ответил за 3с, а будет получать аналогичную по бесполезности заглушку, если он не ответит за 2? Это же ухудшение пользовательского опыта. В чем смысл?
Предлагаю в джейсоне выделить отдельное свойство (тхт, ттс) для ответа в случае если в следующий запрос не пришел ответ.
источник

AZ

Andrew Zahalski in Яндекс.Диалоги (сообщество разработчиков)
Aleksandr Sergeevich
Кстати, идея для яндекс диалогов сделать это на уровне платформы. Так же в вебинтерфейсе - дефолтный ответ навыка вместо - навык не ответил. Даже можно расширить - по переданным в контексте данным последний раз  отвечать по разному если навык не ответил. Хороший кейс)
выглядит ужасно... вот кнопка повторить запрос и флаг replay какой... вот это было бы круто
Но есть проблема с совместимостью...
источник