Shiny: imprimer la sortie de la console sur un objet texte sans attendre la fin d'une fonction

Je suis nouveau sur Brillant et de lutter considérablement la.

J'ai besoin de donner mon Brillant aux utilisateurs la possibilité de télécharger un fichier de données (essentiellement de l'interrogation d'une base de données). La requête d'un moment à l'autre. Brillant prend en charge les dates en natif, mais pas le temps donc j'ai à donner aux utilisateurs un champ de texte avec un submitButton

Le problème est que j'ai besoin d'avoir le bouton envoyer faire un test de validation sur les deux entrées de texte, et l':
1) Retourner un message d'erreur si une entrée n'est pas valide
2) Télécharger les données, tout en donnant des mises à jour de statut (données peut prendre une heure facilement--je ne veux pas laisser aux utilisateurs la pendaison).

J'ai découvert quelque chose qui s'appelle renderPrint qui semblait être une bonne option, en ce qu'elle vise à la sortie de ce qui s'impriment dans la console, alors j'pouvez soit l'imprimer, un message d'erreur ou l'affichage de la normale de la console de sortie à partir des données du processus de téléchargement. Mais alors qu'il détient le résultat de l'impression jusqu'à ce que l'ensemble du processus est terminé.

Je pense à une autre solution possible serait de retourner à renderText et puis le rendu de texte directement à partir de la queryMagic fonction--comme il va à travers le processus de téléchargement des données, régulièrement mise à jour output$text avec le nouveau texte. Mais je ne suis pas sûr de savoir comment exactement pour ce faire.

de l'interface utilisateur.R:

shinyUI(fluidPage(

  # Application title
  titlePanel("Demo Market Report"),

  fluidRow(

    column(4,
           h3("Extract Data"),
           helpText("Enter a start and end date/time of data to download. Be aware it takes about 10 minutes to download one hour of data.", strong("Date/time should be entered in yyyy-mm-dd hh:mm:ss format.")),
           textInput("fromDatetime", "From:", value = paste(with_tz(Sys.time(), "EST")-3600 )),
           textInput("toDatetime", "To:", value = paste(with_tz(Sys.time(), "EST"))),
           submitButton("Download Data Extract")
    ),
    column(4,
           textOutput("text1")
    )
  )


))

serveur.R:

shinyServer(
  function(input, output) {

    logText <- reactive({
      if (input$fromDatetime == "a") {
        data = queryMagic(blah,blah,blah) #this just gets the data, function is already used in production, I'll feed the shiny input into it but that seems straightforward
        return("victory")
      }
      else return("invalid")
    })

    output$text1 <- renderPrint({
      paste(logText())
    })


  }
)

Merci d'avance pour l'aide.

source d'informationauteur Mike Sherman