Использование Await.result приводит к сбою HTTP-сервера Akka - PullRequest
0 голосов
/ 12 июля 2020

У нас есть серверная часть обратной связи, работающая на HTTP-сервере Akka. У нас есть несколько logi c для получения массивов различных групп пользователей по каждому запросу канала просмотра. Поскольку он полностью независим от запросов (заблокированные пользователи, популярные пользователи и т. Д. c), я оптимизировал его, перемещая лог c из каждого запроса в начало сервера, а затем обновляя его каждые 5 секунд. Таким образом, у меня все это будет готово, когда поступит запрос. Я снимаю нагрузку с Elasticsearch, одновременно улучшая производительность.

Этот код значительно улучшил производительность и отлично работает на моем локальном компьютере. Однако, когда мы развертываем в DEV env (сервисы, работающие в Kubernetes), сервер вылетает при запуске. В логе ничего, просто хрень sh. Таймаут составляет 5 секунд в вызове Await.result. Операции не слишком тяжелые, просто выполняется получение или запросы Elasticsearch.

У вас есть идея, почему это происходит? Может быть, в приложении заканчиваются потоки? Я никогда не нахожу подробного объяснения того, как Await.result работает под капотом.

Заранее спасибо

1 Ответ

0 голосов
/ 14 июля 2020

Есть другие мысли?

Я также пытался избежать использования блокировки Await.result, вычисляя этих пользователей в планировщике каждые 5 секунд. И затем я использую эти значения (обновляются каждые 5 секунд) в каждом запросе API. Хотя он отлично работает на моем локальном компьютере, на DEV он никогда не оценивается.

Пробовал ли кто-нибудь использовать планировщик для обновления sh значения переменной исполнителя?

...