169 похожих чатов

Всем привет. Периодически возвращаюсь к проблеме кэширования данных Shiny сервером.

Кому наверное как — может это и не проблема вовсе, но мне кэш создаёт неудобства.
Если коротко — то после обновления данных в источнике, в UI отображаются «старые» данные.
Проблема бородатая: https://stackoverflow.com/questions/37408072/r-shiny-app-shows-old-data

Собственно я решал её разными путями — добавлял кнопку принудительного обновления данных.
Обновлял Шайни сервер прямо из сессии, чтобы сбросить кэш через sudo systemctl restart shiny-server
Изменение даты app.R мне не помогает. Писал приложения с учётом этой проблемы.
Но сейчас дела обстоят так, что ни один из этих методов не подходит.

Собственно вопрос — знаете ли вы ещё какие-то методы обхода кэширования? Может есть какой-то «рубильник» на уровне настроек сервера..
#shiny #cache

14 ответов

23 просмотра

Какая-то странная проблема. Мне казалось ,в mastering shiny было описано решение https://mastering-shiny.org/performance.html?q=ca#caching или у вас проблема в другом?

InvalidateLater ?

ShinyProxy

Stas- Автор вопроса
Ed P
Какая-то странная проблема. Мне казалось ,в master...

К Mastering Shiny тоже обращался, но bindCache() и описанные техники, это не про мой случай. В книге описано как благодаря кэшу, можно сэкономить вычисления. Мне же наоборот, не нужно кэшировать.

Stas- Автор вопроса
Aleksandr Pidtykan
ShinyProxy

это же про развёртывание приложения, в развёрнутом образе будет всё та же проблема.

Stas
К Mastering Shiny тоже обращался, но bindCache() и...

ну смотрите, там есть раздел 23.5.5 Cache scope Как я понял, ваш кэш просто не чистится, т.к. процесс запущен. м.б. в scope надо подкрутить? или таймаут поменьше выставить, чтобы процесс быстрее убивался

Stas
это же про развёртывание приложения, в развёрнутом...

Нет, так как каждый раз новая среда - где нет памяти

Stas- Автор вопроса
Ilya Shutov
InvalidateLater ?

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

Stas
в принципе как вариант, но тогда нужно в каждый от...

поставить фиктивную зависимость от одного реактивного элемента на который ставить Invalidate?

Stas- Автор вопроса
Aleksandr Pidtykan
Нет, так как каждый раз новая среда - где нет памя...

пока нет времени и ресурсов, менять способ деплоя. Но, я возьму на заметку, попробую на досуге.

Stas
пока нет времени и ресурсов, менять способ деплоя....

https://chrome.google.com/webstore/detail/easy-auto-refresh/aabcgdmkeabbnleenpncegpcngjpnjkc?hl=ru ?

Stas- Автор вопроса
Ed P
ну смотрите, там есть раздел 23.5.5 Cache scope Ка...

попробую с этим поиграться, позже отпишусь. Спасибо)

Stas- Автор вопроса
Ilya Shutov
https://chrome.google.com/webstore/detail/easy-aut...

это я так понял кэш браузера скидывает, а надо кэш на сервере. Да и я каждому пользователю не поставлю это расширение)

Stas
попробую с этим поиграться, позже отпишусь. Спасиб...

ответ уже есть в шайни, пишите свой прокси: > shiny::reactiveFileReader function (intervalMillis, session, filePath, readFunc, ...) { filePath <- coerceToFunc(filePath) extraArgs <- list2(...) reactivePoll(intervalMillis, session, function() { path <- filePath() info <- file.info(path) return(paste(path, info$mtime, info$size)) }, function() { do.call(readFunc, c(filePath(), extraArgs)) }) } <bytecode: 0x55877ed79290> <environment: namespace:shiny>

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта