Avi*_*ash 4 r rstudio shiny shiny-server
我有一个闪亮的应用程序,我在其中与数据库和其他组件建立了一些连接。我希望在应用程序关闭时关闭这些连接。当闪亮的应用程序关闭时,有没有办法执行功能?
正如@jdharrison 在评论中提到的,您可以在闪亮的服务器中使用 session$onSessionEnded。
这个极其简单的示例将在您关闭应用程序时向控制台打印一条消息,但您可以用一些关闭数据库连接的语句替换该打印语句。
library(shiny)
ui <- fluidPage(
#Empty UI
)
server <- function(input, output,session) {
session$onSessionEnded(function() {
print('hello, the session has ended')
})
}
shinyApp(ui = ui, server = server)
Run Code Online (Sandbox Code Playgroud)
如前所述,您可以在会话结束时使用session$onSessionEnded
. 如果您为每个用户会话建立一个数据库连接,这会起作用,但通常您可能会在多个用户之间共享一个数据库连接。在这种情况下,您需要在服务器功能终止时运行代码。这可以使用onStop()
函数 ( https://shiny.rstudio.com/reference/shiny/latest/onStop.html )来完成。文档中的示例:
library(shiny)
shinyApp(
ui = basicPage("onStop demo"),
server = function(input, output, session) {
onStop(function() cat("Session stopped\n"))
},
onStart = function() {
cat("Doing application setup\n")
onStop(function() {
cat("Doing application cleanup\n")
})
}
)
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1976 次 |
最近记录: |