在 Shiny 中永久保存一个对象在内存中
Permanently keep an object in memory in Shiny
我知道我可以通过将一些对象放在 server.R
中来在所有用户会话中共享它们,但在对 shinyServer()
的调用之外。但是有没有办法在没有人使用该应用程序的情况下将这些对象保存在内存中?我从磁盘加载这些共享对象需要很长时间,所以我想通过保持加载来为用户加快一点速度 "permanently".
您可能要考虑的一件事是使用 global/enclosing 环境赋值运算符:
globalconst <<- x + y
这可用于从字面上将变量暴露给全局环境,并在 Shiny 会话之间持续存在。
或者,您可以选择使用assign()
功能来选择您想要设置的环境;我相信有一个系统变量来处理环境:https://stat.ethz.ch/R-manual/R-devel/library/base/html/assign.html
创建一个文件 global.R 并将加载数据的代码放在那里。但是,如果服务器休眠或重置内存中的信息将会丢失。
shinyapps.io 有一个设置 "Instance Idle Timeout",您可以将其设置为使应用程序保持更长的生命周期。您还可以在闪亮服务器的配置文件中设置一个值。请参阅下面的 link
http://rstudio.github.io/shiny-server/latest/#application-timeouts
我知道我可以通过将一些对象放在 server.R
中来在所有用户会话中共享它们,但在对 shinyServer()
的调用之外。但是有没有办法在没有人使用该应用程序的情况下将这些对象保存在内存中?我从磁盘加载这些共享对象需要很长时间,所以我想通过保持加载来为用户加快一点速度 "permanently".
您可能要考虑的一件事是使用 global/enclosing 环境赋值运算符:
globalconst <<- x + y
这可用于从字面上将变量暴露给全局环境,并在 Shiny 会话之间持续存在。
或者,您可以选择使用assign()
功能来选择您想要设置的环境;我相信有一个系统变量来处理环境:https://stat.ethz.ch/R-manual/R-devel/library/base/html/assign.html
创建一个文件 global.R 并将加载数据的代码放在那里。但是,如果服务器休眠或重置内存中的信息将会丢失。
shinyapps.io 有一个设置 "Instance Idle Timeout",您可以将其设置为使应用程序保持更长的生命周期。您还可以在闪亮服务器的配置文件中设置一个值。请参阅下面的 link
http://rstudio.github.io/shiny-server/latest/#application-timeouts