运行 闪亮的应用程序永久在服务器上
Run shiny app permanetly on server
我开发了一个闪亮的应用程序,首先必须 运行 SQL 查询,这需要大约 5-10 分钟才能成为 运行。之后的地块建设速度相当快。
我的想法是 运行 在 shinyServer()
之前每天查询一次(使用 invalidLater
)。这很好用。
现在我可以访问闪亮的服务器了。我可以将我的应用程序保存在 ~/ShinyApps/APPNAME/
中并通过 http://SERVERNAME.com:3838/USER/APPNAME/
访问它。但是如果我打开应用程序,虽然它没有在其他浏览器中打开,但它需要 5-10 分钟才能启动。如果我打开它,虽然它也在另一台计算机上打开,但它启动速度很快。
我没有使用服务器的经验,但我的结论是我的服务器只 运行 只要有人访问它,它就是应用程序。但在我的例子中,它应该是永久的 运行,所以它总是快速启动并且可以每天更新一次数据(使用 sql 查询)。
我查阅了文档,因为我猜这是一些设置问题。
保留应用运行:
蛮力: 您可以 server/computer,一直打开您的应用程序视图,这样它就不会从闪亮的服务器内存中删除。但这不会加载新数据。
服务器设置:您可以将服务器的空闲时间设置为较长的时间间隔,这意味着它将等待该时间间隔,然后再从内存中删除您的应用程序。这是在带有 fx 的 shiny-server.conf 文件中完成的。 app_idle_timeout3600
每日更新:
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.
然后必须让应用加载该结果。
我开发了一个闪亮的应用程序,首先必须 运行 SQL 查询,这需要大约 5-10 分钟才能成为 运行。之后的地块建设速度相当快。
我的想法是 运行 在 shinyServer()
之前每天查询一次(使用 invalidLater
)。这很好用。
现在我可以访问闪亮的服务器了。我可以将我的应用程序保存在 ~/ShinyApps/APPNAME/
中并通过 http://SERVERNAME.com:3838/USER/APPNAME/
访问它。但是如果我打开应用程序,虽然它没有在其他浏览器中打开,但它需要 5-10 分钟才能启动。如果我打开它,虽然它也在另一台计算机上打开,但它启动速度很快。
我没有使用服务器的经验,但我的结论是我的服务器只 运行 只要有人访问它,它就是应用程序。但在我的例子中,它应该是永久的 运行,所以它总是快速启动并且可以每天更新一次数据(使用 sql 查询)。
我查阅了文档,因为我猜这是一些设置问题。
保留应用运行:
蛮力: 您可以 server/computer,一直打开您的应用程序视图,这样它就不会从闪亮的服务器内存中删除。但这不会加载新数据。
服务器设置:您可以将服务器的空闲时间设置为较长的时间间隔,这意味着它将等待该时间间隔,然后再从内存中删除您的应用程序。这是在带有 fx 的 shiny-server.conf 文件中完成的。 app_idle_timeout3600
每日更新:
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.
然后必须让应用加载该结果。