我有一个闪亮的应用程序,大约每周都会使用rsconnect包重新部署到www.example.com。shinyapps.io using the rsconnect package.
在应用程序的首页上,我希望显示应用程序上次部署的时间。
我认为这是可能的,通过这样做:
library(shiny)
deployment_time <- lubridate::now()
ui <- fluidPage(
p(glue::glue("Deployment time {deployment_time}"))
)
server <- function(input, output) {
}
shinyApp(ui = ui, server = server)
这背后的原因是deployment_time
是随服务器一起设置的,因此应该只在部署应用程序时运行一次,而不是在用户稍后查看应用程序时运行。
然而,我观察到的行为是,在加载应用程序几次之后,部署时间将更新为当前时间,这表明此代码实际上在某个时间点重新运行。
你知道这是怎么回事吗?我如何设置一个部署时间,而不必在脚本中手动设置日期?
提前感谢:)
1条答案
按热度按时间xuo3flqw1#
我会将最后一次部署日期存储在一个本地文件中,该文件将与应用程序代码一起上传到您的Shiny Server。
以下是一个可重复性最低的示例。
部署记录
首先是一个只在部署应用程序时运行的函数,您可以花一些时间将此函数插入到部署脚本中,以便它写入将文件上载到服务器之前的时间。
然后,您将使用另一个函数来访问上次记录的部署日期。
最小应用程序示例
最后,您可以调用前面的函数并将加载的文本插入到renderText函数中,以显示您的最后部署日期。
当然,你会想要改变你的
deployment_history.txt
文件的位置,自定义你的时间格式,等等。你可以进一步包括部署版本。但是,这是你需要开始的最少信息。