Код запуска в приложении Shiny после определенного c времени каждый день - PullRequest
1 голос
/ 23 марта 2020

У меня есть приложение, которое в данный момент настроено на запуск, когда первый пользователь обращается к нему каждое утро. Это работает очень хорошо, однако у нас иногда есть очень ранний доступ к нему до того, как данные будут готовы, а затем он должен быть обновлен вручную.

Что я хотел бы сделать, это изменить приведенный ниже код для запуска, когда первый пользователь получит доступ к приложению через определенное время c, скажем, 5 часов утра CST Я не могу обернуться вокруг того, как использовать today () вместе с указанным c временем. Как это работает сейчас, очень просто, нам просто нравится информация о файле для CSV, и если она не была обновлена ​​сегодня, мы запускаем код; Мне просто нужно добавить определенный c час утром, чтобы он работал только через определенное время.

FileInfoClaim = file.info("claimallocator.csv") 
FileInfoClaim$mtime <- anydate(FileInfoClaim$mtime) 
claimrenderer <- ifelse(FileInfoClaim$mtime==today(), "yes", "no")

1 Ответ

2 голосов
/ 23 марта 2020

Работа с датами и временем может быть сложной. Приведенный ниже минимальный пример должен делать то, что вы ищете:

library("shiny")

ui <- fluidPage(

)

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

    #Check if its after 5am (runs once at app startup)
    if(Sys.time() > ISOdatetime(format(Sys.time(),'%Y'), format(Sys.time(),'%m'), format(Sys.time(),'%d'), 5, 0, 0)) {

        showNotification("Its after 5am")

    } else {

        showNotification("Its before 5am")

    }

}

shinyApp(ui = ui, server = server)

Все делается в местном часовом поясе. Это может вызвать проблемы, если вы охватите несколько часовых поясов, например, если вы развернете приложение удаленно.

Если вы еще этого не сделали, я бы посоветовал взглянуть на lubridate, популярный пакет, который позволяет работать с датами и времена намного проще.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...