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

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

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

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

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

14 ответов

13 просмотров

Какая-то странная проблема. Мне казалось ,в 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>

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

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

Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
75
База данных не поможет. Шифрование не поможет. Какие там ещё варианты? Накидывайте.
КТ315
20
А табстоп это сообщение от окна или от элемента управления?
The Bird of Hermes
18
А как лучше конвертировать физический адрес в виртуальный при маппинге? В случае ядра у меня, например, direct mapping, первые 768МБ я как есть мапплю в higher half, а остальн...
Evg Resh
26
Открыл свой двухкилобайтный экзешник в x32dbg, а тут какая-то хрень. Смущает кнопка "выполнить до пользовательского кода", а что ещё может быть в файле помимо него ?
НѣкъиⰘижєжєиꙁъвьсєсвѣтьноѣсѣтиѥсть•
11
Мне были интересны дишные хаки и я нашёл любопытный способ на форуме через __traits, что-то вроде int delegate(int) fac = (int n) => n == 0 ? 1 : n * __traits(parent, {})(n - ...
Constantin F.
1
Вопрос тем кто смотрит видео и слушает подкасты - как вы потом ищете нужную вам информацию? Вот статью я прочитал, потом могу искать нужную мне часть банальным поиском. Пропус...
Aleksandr Druzhinin
4
Всем привет, подскажите/посоветуйте пожалуйста. Фаердак компоненты, имею одно место где бизнес хочет видеть при открытии формы список всех клиентов, это порядка 30к. Мои дово...
Sasha Sch
14
Ребят, если кто в курсе - скажите, а в загранке такое же засилье маркетплейсов? или там простые сермяжные интернет-магазины живут попроще?
Андрей [aharito] Харитонов
14
Коллеги, доброе утро. Запустил на удаленном хосте приложение (ручками зашел туда по ssh и запустил, не командой удаленно). Создал потом ssh-туннель, и с моей машины приложение...
Δημήτηρ
9
Карта сайта