2016-03-16 3 views
3

Я использую R для развертывания приложения через Интернет, но URL-адрес, из которого мое приложение принимает данные, - это то место, где мое приложение занимает время, поэтому есть способ, которым я могу кэшировать эти данные? Потому что я попытался установить пакеты memoise, R.cache и еще несколько, которые были неподдерживаемы серверомКак кэшировать данные на блестящем сервере?

ответ

1

Я рекомендую попробовать пакет DataCache от Jason Bryer. Пакет доступен через GitHub, и я успешно использовал его сегодня для приложения Shiny, которое я разрабатываю.

Основная функция от этого пакета - data.cache. Вам необходимо определить функцию, которая генерирует список объектов, которые вы хотите кэшировать, а затем передать функцию, которую вы определяете как аргумент data.cache. Я также рекомендую установить параметр cache.namedata.cache, если вы планируете кешировать более одного списка объектов в вашем приложении.

Например:

DataCache::data.cache(
    function(){ 
    list(
     normal_random_numbers = rnorm(10), 
     uniform_random_numbers = runif(10) 
    ) 
    }, 
    cache.name = 'my_random_numbers' 
) 

Приведенный выше код создает два объекта в локальной среде, normal_random_numbers и uniform_random_numbers, а также кэширует их в файловой системе. Когда вы снова запустите этот код, кешированные копии этих объектов будут использоваться, а не будут восстановлены - если, конечно, срок действия кеша не истечет. Параметр frequencydata.cache используется для установки истечения срока действия кеша, который по умолчанию установлен на daily.

Если вы работаете в программе под Windows, тогда используйте this slightly modified version пакета. Это касается проблемы - ошибка, которая, по-видимому, связана с тем, что имя файла кэша несовместимо с файловой системой Windows.

Смежные вопросы