Flask Кэш файловой системы для больших наборов данных - PullRequest
0 голосов
/ 02 августа 2020

У меня есть приложение Da sh, которое принимает несколько файлов CSV и создает объединенный фрейм данных для анализа и визуализации. Обычно это вычисление занимает около 30-35 секунд для наборов данных размером 600-650 МБ. Я использую кеш файловой системы Flask для однократного хранения этого фрейма данных, и каждый раз, когда я запрашиваю данные, они поступают из кеша.

Я использовал код из примера Da sh здесь

У меня здесь две проблемы:

  1. Кажется, поскольку кеш находится в файловой системе, это занимает в два раза больше времени (почти 70 секунд ), чтобы получить Dataframe, с первой попытки, а затем он быстро приходит из последующих запросов. Могу ли я использовать любой другой тип кэша, чтобы избежать этих накладных расходов?

  2. Я попытался автоматически очистить мой кеш, установив CACHE_THRESHOLD (например, я установил его на 1), но это не так. работает, и я вижу, что файлы добавляются в каталог.

Пример кода:

app = dash.Dash(__name__)

cache = Cache(app.server, config={
    'CACHE_TYPE' : 'filesystem',
    'CACHE_DIR' : 'my-cache-directory',
    'CACHE_THRESHOLD': 1
})

app.layout = app_layout

@cache.memoize()
def getDataFrame():
   df = createLargeDataFrame()
   return df

@app.callback(...)  # Callback that uses DataFrame
def useDataFrame():
   df = getDataFrame()
   # Using Dataframe here
   return value

Может ли кто-нибудь помочь мне с этим? Спасибо.

...