Уникальная сессия в «живой» блестящей приборной панели - PullRequest
1 голос
/ 27 марта 2020

На работе мы используем Shiny для разработки панели управления. Раньше источником информации были плоские файлы, ранее извлеченные из базы данных, но сейчас мы пытаемся разработать «живую» панель мониторинга, позволяющую пользователю запрашивать базу данных из панели мониторинга. Панель инструментов доступна с помощью URL, и для ее просмотра не требуется вход в систему. Просто наведите браузер и приборная панель загрузится.

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

Запросы выполняются с использованием actionButton, который запускает такую ​​функцию, как:

dataTbl <- function(<select criteria>) {
  sqlQuery(connection, "select * from ... ")
}

Как каждый пользователь может иметь свой собственный уникальный сеанс, чтобы независимо от количества пользователей одновременно, каждый отдельный и независимый от других?

1 Ответ

0 голосов
/ 27 марта 2020

Вы можете выполнять поиск и замену строк, я бы также предложил использовать пакет promises для выполнения запросов https://rstudio.github.io/promises/articles/shiny.html

dataTbl <- function(table,products) {
  qr <- "select * from TABLE where product = PRODUCTS"
  qr <- gsub("TABLE",table,qr)
  qr <- gsub("PRODUCTS",products,qr)
  sqlQuery(connection,qr)
}
...