Может ли приложение Shiny Server быть многопоточным, чтобы можно было проверять активность приложения и работоспособность?
У меня есть блестящее приложение с 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 Server "частично активным", чтобы прослушивать проверку работоспособности, а также запускать любые R
вещи в фоновом режиме.
У меня есть скрытое подозрение, что это невозможно, так как R
сама по себе является однопоточным, и только версия Shiny Server PRO позволяет конечной точке проверки работоспособности.