Поправка по кэшу: по интервалу снова сверяем modified, всегда качает только кнопка

Как и просили: фоновое обновление по интервалу сначала смотрит на дату
изменения файла и, если таблица не менялась, не скачивает её. Всегда
перечитывать таблицу — только принудительное обновление из админки
(force_reload, кнопка «Обновить сейчас»).

Тесты: по интервалу — без скачивания при неизменном modified; кнопка —
скачивает независимо от modified (test_force_refresh_ignores_ttl_and_modified).
This commit is contained in:
2026-10-06 15:01:07 +03:00
parent 475eb3801e
commit a4798c4a36
3 changed files with 30 additions and 19 deletions

View File

@@ -101,16 +101,18 @@ nginx (https://schedule.our-place.ru) → 127.0.0.1:8090
ошибка, число групп);
- **вставить новую ссылку**: она проверяется скачиванием и разбором таблицы
до сохранения — нерабочая не применится, данные на сайте не пострадают;
- **принудительно обновить расписание** — вне интервала, не дожидаясь
фонового обновления (интервал и так перечитывает таблицу целиком);
- **принудительно обновить расписание** — вне интервала: кнопка перечитывает
таблицу всегда, не глядя на дату изменения файла;
- **задать интервал обновления** в минутах (`1…1440`).
Каждое обновление (и по кнопке, и по интервалу) **всегда перечитывает таблицу**,
а в панели и в логе видно, изменился ли файл на Диске: `sha256`, время
последнего изменения содержимого и отметка «изменился / без изменений».
Если вы поправили таблицу, а после обновления написано «без изменений» — значит
публичная ссылка Яндекса отдаёт прежнюю версию файла (бывает с задержкой),
стоит повторить обновление через минуту.
Фоновое обновление по интервалу работает как раньше: сначала сверяется
`modified` файла, и если таблица не менялась — скачивания не происходит.
Принудительное обновление (кнопка) скачивает файл **всегда**, поэтому его и
стоит нажимать сразу после правок в таблице. В панели и в логе при этом видно,
изменилось ли содержимое файла: `sha256`, время последнего изменения и отметка
«изменился / без изменений». Если вы поправили таблицу, а после обновления
написано «без изменений» — значит публичная ссылка Яндекса отдаёт прежнюю
версию файла (бывает с задержкой), стоит повторить обновление через минуту.
Как это устроено: