У меня блестящее приложение с Shiny Server (версия с открытым исходным кодом), упакованное в докер и развернутое в AWS Fargate. Приложение довольно простое, в нем три вещи:
- Принимает пользовательский ввод и извлекает данные из Google Analytics на основе этого ввода;
- Обрабатывает эти данные через файл
.Rmd
;
- Предлагает вывод
.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 позволяет конечной точке проверки работоспособности .