У меня есть панель инструментов, которая опирается на 25+ таблиц базы данных.Я хочу периодически обновлять эти данные.Блестящий reactivePoll
, который проверяет количество строк в каждой таблице, а затем читает таблицу при увеличении количества строк, является правильным решением для моего случая.
Но я не хочу писать 25+ reactivePoll
методовпо одному на каждую таблицу.Вместо этого я хочу определить «общий» и повторно использовать его, просто указав имя таблицы базы данных.
Я не могу найти способ сделать это.Есть идеи?Концептуально, вот что я хотел бы:
pollData <- reactivePoll(60000, session,
checkFunc = function() {
dbconn <- dbConnect(MySQL(), group = 'mysql')
query <- dbSendQuery(dbconn,
'
SELECT
MAX(timeCreated) as lastCreated
FROM
<table name passed as argument>;
')
lastFeedback <- dbFetch(query, -1)
dbClearResult(query)
dbDisconnect(dbconn)
lastFeedback$lastCreated
},
# This function returns the content of the logfile
valueFunc = function() {
dbconn <- dbConnect(MySQL(), group = 'mysql')
query <- dbSendQuery(dbconn,
'
SELECT
*
FROM
<table name passed as argument>
')
data <- dbFetch(query, -1)
dbClearResult(query)
dbDisconnect(dbconn)
data
}
)
server <- function(input, output, session) {
table1Data <- pollData(<table1 name>)
table2Data <- pollData(<table2 name>)
....
....
}
ПРИМЕЧАНИЕ. Я понимаю, что могу переместить checkFunc
и valueFunc
и сделать их общими, однако для этого все равно потребуется 25+ responsetivePoll () определения, которые вызывают эти две другие функции.Вот чего я стараюсь избегать.