代码之家  ›  专栏  ›  技术社区  ›  Stan

在本地服务器上的应用程序中保存和加载工作区

  •  1
  • Stan  · 技术社区  · 6 年前

    我有一个闪亮的应用程序在本地服务器上运行,可以通过“IP地址:端口”通过Web浏览器访问。我在任务规划器中安排了一个任务,它执行以下代码(路径:“c://users//administrator//documents//run.r”

    require(shiny)
    folder_address = "C://Users//Administrator//Documents//App//app.R"
    
    x <- system("ipconfig", intern = TRUE)
    z <- x[grep("IPv4", x)]
    ip <- gsub(".*? ([[:digit:]])", "\\1", z)
    
    runApp(folder_address, launch.browser = FALSE, port = 1234, host = ip)
    

    任务执行得很好,因为我可以通过“ip:port”访问应用程序。

    开始时 app.R 我手动加载工作区: load("C://Users//Administrator//Documents//App//.RData") . 当我不手动加载时,应用程序将无法识别应用程序的变量/数据帧。

    我的问题是:

    • 该任务计划每天早上运行。当我们只运行一次任务时,可能会发生服务器有更新或更新,然后重新启动的情况。这样,应用程序就不再运行了。
    • 当任务在应用程序中进行编辑后的第二天运行时(即变量和数据帧已更改),它将再次加载工作区。
    • 此工作区不包含已编辑的数据,因为编辑后工作区不会自动保存。
    • 当我手动放置 save.image(".RData") 在里面 应用程序 对于触发数据编辑的事件(如按钮),它将保存 run.R ,将变量留给我 x , z , ip folder_address .

    如何保存应用程序的工作区,而不是 奔跑 ?一个解决方法是让任务每天运行,然后让它打开。但是,例如,当任务因更新而停止时,我们就必须手动重新运行它。

    1 回复  |  直到 6 年前
        1
  •  1
  •   stevec Zxeenu    6 年前