График не обновляется на блестящем сервере при обновлении данных - PullRequest
0 голосов
/ 28 августа 2018

У меня проблемы с развертыванием блестящего приложения на блестящем сервере.

По сути, у меня есть CSV, который обновляется каждое утро, и я хотел бы, чтобы блестящее приложение на сервере проверяло, обновлялись ли каждые пять минут, и реактивно редактировало данные и отображало график ниже.

Этот анализ данных (create_issue_spotter_data) занимает относительно много времени в R, поэтому у меня также есть несколько схематичный способ убедиться, что это обновление данных не произойдет, когда начинается новый сеанс: у меня есть переменная start, которая проверяет, равно ли оно 1. Если это так, оно увеличивается, поэтому при следующем обновлении chat_file() будет вызвана функция create_issue_spotter_data. Я готов полностью удалить это, если это плохая практика.

Когда это приложение работает локально, оно работает именно так, как я хочу. Тем не менее, он не работает на блестящем сервере. Код размещен ниже:

write.csv(mtcars, 'mtcars.csv')

create_issue_spotter_data = function(df) {
 df$new_column = 0
 df = df[df$mpg < 20, ]
 return(df)
}



ui <- fluidPage(

  fluidRow(align = "center", downloadButton("download_btn")),
  fluidRow(align = "center", plotOutput("distPlot"))

)

server <- function(input, output) {

  start <- 1

  file <- reactiveFileReader(
    intervalMillis = 1000 * 60 * 5, 
    session = NULL, 
    filePath = 'mtcars.csv', 
    readFunc = readr::read_csv
  )

  this_df = eventReactive(file(), {
    if (start != 1) {
      print(paste("Now updating the data. Date:", Sys.time()))
      saved_df <<- create_issue_spotter_data(file())
      df <- saved_df
    } else {
      start <<- start + 1
      print(paste("Everything's good at", Sys.time()))
      df <- saved_df
    }
    df
  })

  output$download_btn <- downloadHandler(
    filename = paste0(paste("Issue", "Spotter", gsub("-", "_", Sys.Date()), sep = "_"), ".pdf"),
    content = function(file) {
    pdf(file)
    p = build_cluster_viz(this_df(), download = TRUE)
    print(p)
    dev.off()
  }, contentType = "pdf")

  output$distPlot <- renderPlot({
    plot(this_df()$mpg, this_df()$disp)
  })
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...