Кэш: по интервалу таблица перечитывается всегда
Поле modified у публичной ссылки Яндекса может «застыть» (кэш на стороне Диска), и проверка «modified не изменился → не скачиваем» держала старые данные до неопределённого момента: стенд показывал прежнее расписание, хотя в таблице правки уже были. Теперь на каждое обновление (и по интервалу, и по кнопке) таблица скачивается заново; modified только показывается в админке. Плюс к этому: - при старте пишем в лог предупреждение, если ссылка в настройках отличается от SCHEDULE_LINK из окружения (именно так терялось время в прошлый раз: на стенде в настройках была сохранена другая ссылка); - на странице админки у поля ссылки пояснение, что значение хранится в настройках стенда и имеет приоритет над .env.
This commit is contained in:
@@ -155,11 +155,16 @@ def test_cache_no_repeated_download(client, cache):
|
||||
assert cache.calls["download"] == 1
|
||||
|
||||
|
||||
def test_cache_modified_unchanged_no_download(cache):
|
||||
cache._ttl = 0 # даже с истёкшим TTL
|
||||
def test_interval_refresh_always_downloads(cache):
|
||||
"""По интервалу таблица перечитывается всегда.
|
||||
|
||||
Поле modified у публичной ссылки может «застыть», поэтому на него не
|
||||
опираемся: иначе стенд показывал бы старые данные бесконечно.
|
||||
"""
|
||||
cache._ttl = 0
|
||||
cache.get()
|
||||
cache.get()
|
||||
assert cache.calls["download"] == 1
|
||||
assert cache.calls["download"] == 2 # оба обновления по интервалу скачали таблицу
|
||||
assert cache.calls["modified"] >= 2
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user