我想运行r脚本并实时获取输出日志。
我的代码是这样的。
这只是我的想法,可以运行
但是,问题是闪亮应用程序中的打印日志输出不是实时的
刚刚完成r脚本,然后在闪亮的应用程序中出现了日志
我想在闪亮的应用程序中实时登录。
任何人都知道问题是什么,我应该为自己的意图做些什么。
ui <- fluidPage(
sidebarLayout(
sidebarPanel(
### Input1
textInput("input1", "input1:"),
### Input2
textInput("input2", "input2:"),
###
actionButton("run", "Running", width='200px')
),
mainPanel(
verbatimTextOutput('log')
)
)
)
server <- function(input, output, session) {
observeEvent(input$run, {
### clear log file
system("> log_path/test.log")
### excute run text
runs <- paste("Rscript 'script_path/test.R'",
input$input1,
input$input2,
">> 'log_path/test.log' 2>&1")
system(runs)
})
output$log <- renderText({
### 1sec refresh
invalidateLater(1000, session)
### read log file 40 tail
text_log <- readLines("log_path/test.log", n = -1) %>%
tail(40) %>% paste(collapse = "\n")
return(text_log)
})
}
shinyApp(ui, server)
答案 0 :(得分:0)
您只需要将wait = FALSE
传递到system
函数中即可。
使用system(runs, wait = F)
,一切正常。