나는 반짝이는 응용 프로그램을 사용하여 데이터베이스와 다른 구성 요소에 대한 연결을 만들고 있습니다. 앱 연결이 끊어지면 연결을 종료하고 싶습니다. 반짝이는 앱이 닫힐 때 함수를 실행하는 방법이 있습니까?서버 프로세스를 닫을 때 함수를 호출하는 방법이 있습니까?
답변
@jdharrison의 의견에서 언급했듯이 반짝이는 서버에서는 $ onSessionEnded 세션을 사용할 수 있습니다.
이 간단한 예제는 응용 프로그램을 닫을 때 콘솔에 메시지를 인쇄하지만 해당 print 문을 데이터베이스 연결을 닫는 일부 명령문으로 바꿀 수 있습니다.
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)
완벽하게 설명했다. 감사합니다 – IndranilGayen
그것은 나를 도왔습니다 훌륭한 대답! –
이전되었습니다로서 당신은 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")
})
}
)
'? on.exit'을 살펴보십시오. 도움이 될 것입니다. – Andrie
'반짝 반짝 빛나는'최신판'세션'에 문서화 된'session $ onSessionEnded'를 보라 – jdharrison