2016-09-06 146 views
0

我开发了一个闪亮的应用程序,首先必须运行SQL查询需要大约5-10分钟才能运行。之后的情节建设相当快。 我的想法是在shinyServer()之前每天运行一次查询(使用invalidLater)。这很好。在服务器上永久运行闪亮的应用程序

现在我可以访问一个闪亮的服务器。我可以保存我的应用程序~/ShinyApps/APPNAME/并通过http://SERVERNAME.com:3838/USER/APPNAME/访问它。但是,如果我打开该应用程序,而在其他浏览器中未打开该应用程序,则需要5-10分钟才能启动。如果我打开它,同时它也在另一台计算机上打开,它会快速启动。

我没有服务器的经验,但我总结我的服务器只运行应用程序,只要有人正在访问它。但在我的情况下,它应该永久运行,所以它始终快速启动,并且可以每天更新一次数据(使用sql查询)。

我抬头看文档,因为我猜这是一些设置问题。

回答

0

为了让应用程序运行:

蛮力:你可以有一个服务器/计算机,有您的应用程序打开所有的时间,因此不会从闪亮的服务器内存下降的观点。但那不会加载新的数据。

服务器设置:您可以将服务器的空闲时间设置为较大的时间间隔,这意味着在将应用程序从内存中删除之前,它会等待该时间间隔。这是在fx的shiny-server.conf文件中完成的。 app_idle_timeout 3600

要有每日更新:

的crontab: 建立一个crontab的工作在你的SSH客户端FX。腻子: $ crontab -e命令

像这样(阅读更多:https://en.wikipedia.org/wiki/Cron):

00 00 * * * Rscript /Location/YourDailyScript.R 

YourDailyScript.R:

1. setwd(location) #remember that! 
2. [Your awesome 5 minute query] 
3. Save result as .csv or whatever. 

然后还要到App只需加载这一结果。

相关问题