uptime.log") -6ren">
gpt4 book ai didi

r - 重新计算时避免数据表变灰

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:03:22 24 4
gpt4 key购买 nike

我有一个非常简单的 Shiny 应用程序来显示 Shiny 服务器的 CPU 使用率和可用内存:

ui <- fluidPage(
titlePanel('Shiny Server Monitor'),
DT::dataTableOutput("cpu")
)

server <- function(input, output, session) {


output$cpu <- DT::renderDataTable({
invalidateLater(1000)

system("free -h > top.log")
system("uptime > uptime.log")

free <- readLines("top.log")
uptime <- readLines("uptime.log")

mem = strsplit(free, " ")
available_mem =tail(mem[[2]],n=1)

# I have 6 cores so normalized by deviding the load avarage to 6.
load_ave = round(as.numeric(unlist(strsplit(unlist(strsplit(uptime, ","))[4],":"))[2])/6*100,2)

dat = data.frame(load_ave,available_mem)
colnames(dat) = c("CPU usage [%]", "Available memory [Gb]")


DT::datatable(dat,rownames= FALSE)

})

}

因为我正在使用 invalidateLater 命令,所以输出表每秒更新一次,因此会闪烁,这让一切变得非常难看。

有没有办法解决这个问题或在 Linux 中将结果(尤其是 CPU 使用率)显示为 htop 命令,例如: enter image description here

最佳答案

尝试添加

tags$style(type="text/css", ".recalculating {opacity: 1.0;}")

到您的 fluidPage

编辑:

抱歉,以上适用于 plotOutput。关于您的 datatable,您需要将其设为客户端表(在 renderDataTable 中添加 server = FALSE):

library(shiny)

ui <- fluidPage(
titlePanel('Shiny Server Monitor'),
DT::dataTableOutput("cpu")
)

server <- function(input, output, session) {



output$cpu <- DT::renderDataTable({
invalidateLater(1000)

system("free -h > top.log")
system("uptime > uptime.log")

free <- readLines("top.log")
uptime <- readLines("uptime.log")

mem = strsplit(free, " ")
available_mem =tail(mem[[2]], n=1)

# I have 6 cores so normalized by deviding the load avarage to 6.
load_ave = round(as.numeric(unlist(strsplit(unlist(strsplit(uptime, ","))[4],":"))[2])/6*100,2)

dat = data.frame(Sys.time(), load_ave, available_mem)
colnames(dat) = c("CPU usage [%]", "Available memory [Gb]")


DT::datatable(dat, rownames= FALSE)

}, server = FALSE)

}

shinyApp(ui = ui, server = server)

关于r - 重新计算时避免数据表变灰,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53747608/

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