网络错误触发server.R中的下载报告(报告生成)操作两次

时间:2017-06-08 06:29:53

标签: r reporting-services r-markdown shiny

我在shiny application上部署了Rshiny pro server。该应用程序的主要目的是处理输入excel文件,并以word document的形式生成报告,其中包含tables和大约15 graphs使用ggplot

此应用程序适用于输入excel文件小于约。约为3500-4500 rows的{​​{1}}。

现在,我正在尝试处理大约10 metrics周围4000-4500 rows的excel文件。处理此文件时,在生成报告(20 metrics文件处理)期间,它仅在Rmarkdown上显示network error。尽管UI上存在此错误,但在后端生成报告文件,但生成的报告未下载。出现此错误后,报告生成操作将自动触发,从而生成两个报告,但这些报告仍无法下载。

因此,根据这些观察结果,我得出的结论是,在获取UI时,network error(报告生成和下载)操作将再次被服务器触发.R。

有没有人经历过这种奇怪的情况?我正在寻找有关这两个问题的指导 -

  1. 仅在某个时间获得download report的原因是什么?
  2. 有什么,它会触发network error两次动作?
  3. 是否有指定最大值的选项。会话超时期?

1 个答案:

答案 0 :(得分:0)

我找到了上述问题的答案,我已经回答了here

虽然我想在上面解释的背景下快速回答问题。

  1. 获取网络错误的原因:仅当计算(在本例中为报告生成)未在{{1}内完成时,才会向用户显示network error }}。这是因为45 seconds中的http_keepalive_timeout参数不是definedserver configuration参数的default valuehttp_keepalive_timeout
  2. 为什么下载报告操作会被触发两次? :这是因为在点击45 seconds后发生的计算过程中,服务器的用户会话终止了 。闪亮的服务器配置中有一个名为Download action button的参数,reconnectenabled。当用户与服务器的连接中断时,Shiny Server将为他们提供一个对话框,允许他们重新连接到现有的Shiny会话15秒。这意味着服务器将在用户断开连接之后将Shiny会话在服务器上保持活动15秒,以防他们重新连接。在15秒之后,将收集用户的会话并且将通知他们并且提供刷新页面的机会。如果此设置为true,则服务器将立即收到断开连接的任何用户的会话。 你可以在shiny server documentation.中阅读相关内容 reconnect
  3. 指定最大值的选项会话超时时间:是的。有一个名为default的参数。它允许您指定http_keepalive_timeout。您需要将maximum session timeout period参数添加到http_keepalive_timeout的{​​{1}},并在几秒内添加shiny-server.conf,如下所示。

    http_keepalive_timeout 120;

    详细了解top level hereenter image description here