R: Представляем автоматизацию в блестящем приложении - PullRequest
0 голосов
/ 25 июня 2018

Я хочу знать, как создать блестящее приложение, которое автоматически запускает функции в запланированное время.Я прочитал это , но это не относится к моему делу.

Я создал функцию для обновления листа Google, используя пакет googlesheet.Теперь пользовательский интерфейс приложения выглядит следующим образом.

enter image description here

Нажатие кнопки «Обновление вручную» позволяет приложению запускать функции и обновлять таблицу googlesheet.

Но я хочу, чтобы приложение запускало одну и ту же функцию каждый день в 13:00, даже не нажимая кнопку «Обновление вручную», пока кнопка «Активировать автоматическое обновление» включена.

Подводя итог, я хочу знать

  1. способ автоматического выполнения функций в назначенное время в блестящем приложении.
  2. способ сохранения пользователяввод «Активировать автообновление».То есть, если вы включите эту кнопку, даже если вы закроете это приложение и снова откроете его, оно останется включенным.После того, как вы выключите эту кнопку, она останется выключенной, пока пользователь не включит ее снова, даже если пользователь выключит приложение.

Буду признателен за любую помощь!

ui.R

navbarPage("Automated Report Generator", id = "nav",

           tabPanel("ITM",
                    sidebarLayout(
                      sidebarPanel(materialSwitch(inputId = "activateAutoITM", 
                                                  label = "Activate auto update", 
                                                  status = "primary", right = FALSE),
                                   actionButton("ITM_update", "Manually update"),
                               width = 2),
                  mainPanel(div(a("Visit ITM Google Sheet",
                                  href = "https://docs.google.com/spreadsheets/d/#########",
                                  target="_blank")),
                            div(htmlOutput("gsheet_text_ITM"))
                ) 
                ) # sidebarLayout
            )) # navbarPage

server.R

shinyServer(function(input, output, session) {

  observeEvent(input$ITM_update, {

    ####### Here are the functions to update google sheet########
    ####### But I'll just omit because of the security#########

    output$gsheet_text_ITM <- renderUI({
          str1 <- paste("Calculation finised.")
          HTML(paste(str1))
    })
  }) # shinyServer
...