Может ли приложение Shiny Server быть многопоточным, чтобы можно было проверять активность приложения и работоспособность? - PullRequest
0 голосов
/ 05 сентября 2018

У меня блестящее приложение с Shiny Server (версия с открытым исходным кодом), упакованное в докер и развернутое в AWS Fargate. Приложение довольно простое, в нем три вещи:

  1. Принимает пользовательский ввод и извлекает данные из Google Analytics на основе этого ввода;
  2. Обрабатывает эти данные через файл .Rmd;
  3. Предлагает вывод .pdf для загрузки.

При локальном запуске (runApp() или docker run --rm -p 3838:3838 [image]) приложение работает без проблем. При развертывании в AWS Fargate (после устранения некоторых проблем с развертыванием) приложение, я думаю, сталкивается с проблемами, связанными с проверкой работоспособности. Я уверен, что эти проблемы возникают, потому что описанный выше шаг 2 может занять несколько минут (и генерирует отчет размером .pdf в мегабайтах). Приложение отключается, появляется ошибка 503 Service Temporarily Unavailable, и через несколько минут после перезагрузки страницы она возвращается в нормальное состояние.

Я могу отредактировать проверки работоспособности, чтобы у меня было больше времени, прежде чем AWS EC2 посчитает, что мой контейнер "нездоровый" (из-за невосприимчивости от Shiny Server), но это не лучшая практика для разработки программного обеспечения (в соответствии с разработчиками программного обеспечения в моей организации).

Есть ли способ, позволяющий долговременному приложению Shiny на Shiny Server с открытым исходным кодом обрабатывать логику R, в то же время позволяя проверять работоспособность? Я думаю, что это, по сути, сохранит Shiny Сервер "частично проснулся", чтобы прослушивать проверку работоспособности, а также запускать R данные в фоновом режиме.

У меня есть подозрение, что это невозможно, так как R сам по себе является однопоточным, и только версия Shiny Server PRO позволяет конечной точке проверки работоспособности .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...