r - Shiny 的应用程序与服务器断开连接。没有错误

标签 r shiny

我正在使用免费的 Shiny 服务器在 Ubuntu 上运行一个 Shiny 应用程序。 当我在浏览器(在 MacOS 或 iPhone 上)的选项卡中查看应用程序时,它工作正常。如果我让选项卡保持打开状态几分钟并返回到该选项卡,我会看到熟悉的半透明灰色覆盖层,左下方有一个矩形框,上面写着“已与服务器断开连接。重新加载”。

/var/log/shiny-server/app-name.../var/log/shiny-server.log 中没有指示错误.

这是我 Shiny 的服务器配置文件:

# Define a server that listens on port 3838
server {
  listen 3838;

  # Define a location at the base URL
  location / {

    # Defines the amount of time (in seconds) an R process with no active connections should remain open.
    app_idle_timeout 0;

    # Host the directory of Shiny Apps stored in this directory
    site_dir /srv/shiny-server;

    # Log all Shiny output to files in this directory
    log_dir /var/log/shiny-server;

    # When a user visits the base URL rather than a particular application,
    # an index of the applications available in this directory will be shown.
    directory_index on;
  }
}

基于此post ,我认为添加 app_idle_timeout 0; 会阻止这种情况的发生。它没有。

运行 /opt/shiny-server/bin/shiny-server --version 结果:

Shiny Server v1.5.14.948

据我所知,Dean Attali 已创建,shinydisconnect , 作为一种使此消息看起来更好的方法。但是,我想知道如果没有发生错误,如何完全避免出现此消息。

最佳答案

“与服务器断开连接”错误是一条通用消息,表示 R session 由于某种原因已关闭。发生这种情况的原因有很多,从丢失对象到加载数据的时间太长,再到使用禁止的包,再到达到应用程序超时设置。

遇到此错误时,您应该做的第一件事是检查应用程序日志。这可以在 shinyapps.io 仪表板中访问,在应用程序 View 中的日志选项卡下,或者通过在 RStudio 控制台中运行 rsconnect::showLogs() 来访问。 enter image description here

此日志将包含有关应用程序启动和运行的信息。在此过程中遇到的任何错误都将显示在这里,与您在自己的 R 进程中本地运行 shiny 应用程序时创建的日志相当。

它也可能有助于在应用程序运行时检查浏览器中的 Javascript 控制台,这可能会显示与您的应用程序相关的其他错误和消息。检查此项的具体说明将因您的浏览器而异。 enter image description here

如果您看到与应用程序的数据、代码或工作区相关的错误,您需要先修复这些错误,然后应用程序才能正确加载。请记住,部署到 shinyapps.io 的应用程序必须是独立和自包含的,因此应用程序所需的所有数据、工作区对象和其他资源都必须与其一起部署,或通过互联网访问。

即使应用程序日志中没有错误,问题也可能出在您的代码中。有许多在线资源可帮助您调试和优化您的应用程序,包括我们的 Debugging Shiny Applications 文章和 shinyapps-users Google group。

请注意,您的应用可能在本地运行良好,但一旦受到多个用户的负载,就会在 shinyapps.io 上运行失败。发生这种情况的原因有多种,包括但不限于:

加载数据后忘记关闭每个数据库连接 对公共(public) API 进行多次长时间运行的调用 次优的应用程序实例或工作人员配置 最后,我们的缩放和调优文章介绍了有关优化 shinyapps.io 应用程序性能的最佳实践。

关于r - Shiny 的应用程序与服务器断开连接。没有错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64095798/

相关文章:

r - 减少侧边栏的未使用区域

R/ Shiny : Change plot ONLY after action button has been clicked

css - 在R Shiny中的fluidRow中设置不等列长度文本的格式

r - r修改并重建软件包

r - shelljs 执行在 DigitalOcean 上卡住

python - 如何将几个类似的 .csv 文件合并到一个具有给定结构的数据框中

javascript - 使用D3和Shiny在R中实现 `identify()`

删除 plotly 点击事件数据

R:如何从 cor.test 函数中提取置信区间

r - 传递参数列表以在 R 中绘图