From f5e0c3947c2c2fed86ac52c80f95a40ed5e6e9ee Mon Sep 17 00:00:00 2001 From: Damian Budelewski Date: Mon, 15 Jun 2020 15:52:15 +0200 Subject: [PATCH] Use opencpu server to calculate rnorm function --- shiny.worker.poc.R | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) diff --git a/shiny.worker.poc.R b/shiny.worker.poc.R index 2f94b26..5dcbff1 100644 --- a/shiny.worker.poc.R +++ b/shiny.worker.poc.R @@ -1,5 +1,8 @@ library(future) library(shiny) +library(jsonlite) +library(httr) + plan(multiprocess) ui <- fluidPage( @@ -60,6 +63,21 @@ job_reset <- function(id) { job_registry[[id]] <<- NULL } +opencpu_rnorm <- function(n = 100, mean = 50, sd = 100){ + payload <- list( + n = n, + mean = mean, + sd = sd + ) + payload <- toJSON(payload, auto_unbox = TRUE) + res <- httr::POST( + url = "https://cloud.opencpu.org/ocpu/library/stats/R/rnorm/json", + httr::add_headers( 'Content-Type' = "application/json"), + body = payload + ) + result <- unlist(content(res)) +} + shinyWorker <- function(id, fun, args_reactive, value_until_resolved = NULL) { reactive({ @@ -94,7 +112,7 @@ server <- function(input, output) { plotValuesPromise <- shinyWorker("plotValuesPromise", function(args) { Sys.sleep(5) - cbind(rnorm(1000), rnorm(1000)) + cbind(opencpu_rnorm(mean = 80), opencpu_rnorm(mean = 10)) }, args_reactive = reactive({ input$triggerButton