[R-es] Promises Future en shiny no me funciona

Jesús Para Fernández j@p@r@@fern@ndez @ending from hotm@il@com
Mie Nov 21 08:47:59 CET 2018


Buenas,

Estoy intentando que al ejectuar un boton en shiny me cargue de manera asincrona dos consultas. Una es a una consulta sql pesada (tarda 10 segundos) y la otra es una sql ligera (tarda 0 segundos). Intento que el resultado de la consulta ligera se muestre mientras se espera al resulatdo de la consulta pesada, pero no lo consigo.

Estoy usando promises con future, en linux, pero no me funciona 🙁 , ya que me muestra el ersultado del proceso pesado y el ligero solo cuando se ha ejecutado ya el pesado.

Para simular las consultas, eh creado la funcion heavyFunction.... Aqui os pongo mi código. ¿Qué creeis que puede estar pasando? Lo curioso es que si os fijais en la consola, si que funciona bien.

library(future)
library(promises)
plan(multiprocess)

heavyFunction <- function(n){
  Sys.sleep(n)
  print(n)
}


ui <- fluidPage(
  actionButton("go","Show the data"),
  textOutput("result0sec"),
  textOutput("result10sec")

)

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


  data0 <- eventReactive(input$go,{
    heavyFunction(0)


  })

  data10 <- eventReactive(input$go,{
    future(heavyFunction(10))


  })
  output$result0sec <- renderText({
    data <- data0()
    print(data)
  })


  output$result10sec <- renderText({
    data <- data10()
    data%...>%print()
  })




}
shinyApp(ui,server)

	[[alternative HTML version deleted]]



Más información sobre la lista de distribución R-help-es