闪亮的应用已与服务器断开连接。没有错误

时间:2020-09-28 04:02:59

标签: r shiny

我正在使用免费的Shiny服务器在Ubuntu上运行Shiny应用程序。 当我在浏览器(在MacOS或iPhone上)的选项卡中查看该应用程序时,它运行良好。如果我将选项卡打开几分钟,然后返回到该选项卡,则会在左下角看到一个熟悉的半透明灰色叠加层,上面带有一个矩形框,说明“已与服务器断开连接。重新加载”。

/var/log/shiny-server/app-name.../var/log/shiny-server.log处都没有错误。

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

# 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,以使此消息看起来更好。但是,我想知道如果没有发生错误,如何完全防止出现此消息。

1 个答案:

答案 0 :(得分:0)

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

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

此日志将包含有关应用程序启动和运行的信息。与您在自己的R进程中本地运行闪亮应用程序时创建的日志类似,此处将显示沿途遇到的任何错误。

在应用程序运行时,还可以在浏览器中检查Javascript控制台,这可能会显示其他错误和与您的应用程序相关的消息。具体检查方法取决于您的浏览器。 enter image description here

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

即使应用程序日志中没有错误,问题仍然可能出在您的代码内。在线上有很多资源可用来帮助您调试和优化应用程序,包括我们的“调试有光泽的应用程序”一文和“ shinyapps-users用户” Google组。

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

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