我开发了一个闪亮的应用程序,首先必须运行SQL查询,需要大约5-10分钟才能运行。之后的地块建设速度非常快。
我的想法是在invalidLater
之前每天运行一次查询(使用shinyServer()
)。这很有效。
现在我可以访问一个闪亮的服务器了。我可以在~/ShinyApps/APPNAME/
中保存我的应用,然后通过http://SERVERNAME.com:3838/USER/APPNAME/
访问它。但是如果我打开应用程序,虽然它在其他浏览器中没有打开,但需要5-10分钟才能启动。如果我打开它,当它也在另一台计算机上打开时,它会快速启动。
我没有服务器的经验,但我总结说我的服务器只运行应用程序,只要有人访问它。但在我的情况下,它应该永久运行,因此它总是快速启动并且可以每天更新一次数据(使用sql查询)。
我查阅了文档,因为我猜这是一些设置问题。
答案 0 :(得分:0)
让应用继续运行:
暴力破解:你可以拥有一台服务器/计算机,让你的应用程序视图一直打开,这样它就不会从闪亮的服务器内存中掉落。但那不会加载新数据。
服务器设置:您可以将服务器的空闲时间设置为较大的时间间隔,这意味着它会在从内存中删除应用程序之前等待该时间间隔。这是在带有fx的shiny-server.conf文件中完成的。 app_idle_timeout 3600
要进行每日更新:
<强> crontab的:强> 在SSH客户端fx中设置crontab作业。油灰: $ 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才加载该结果。