gpt4 book ai didi

r - 如何在R Shiny中实现清理例程?

转载 作者:行者123 更新时间:2023-12-03 13:42:01 25 4
gpt4 key购买 nike

例如,我的 Shiny 应用程序可能会打开数据库连接

# server.R
db <- dbConnect("SQLite", DB_PATH)
shinyServer(
... # things involving db
)

现在,如何确保在Shiny session 结束时(通过 db)正确关闭连接 dbDisconnect(db)?确实,应该为连接到服务器的每个客户端执行清除操作,还是只执行一次?

我只是担心,由于多个用户一直都在连接和断开与Shiny应用程序的连接和断开连接,如果没有正确清理,他们将留下悬而未决的数据库连接。确实,客户端可以通过关闭浏览器来断开连接而不会发出警告。

最佳答案

正确的方法是分配一个函数使用session$onSessionEnded进行清理。例如,在server.R中:

cancel.onSessionEnded <- session$onSessionEnded(function() {
dbDisconnect(db)
})

然后,您可以调用 cancel.onSessionEnded撤消分配。

关于r - 如何在R Shiny中实现清理例程?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23276491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com