К содержанию

Навигация

Публикация и откат

Публикацией владеет продукт. Framework задаёт для неё правила, которые не дают показать посетителю половину результата.

Снимок результата. Продукт полностью собирает страницу и сохраняет вместе готовые Document, HTML и перечень зависимостей. Этот неизменяемый комплект называется снимком результата. Отдельная короткая запись указывает, какой снимок сейчас активен.

Что Содержит
снимок входов настройки и содержимое, с которыми начинается сборка
снимок результата готовые Document, HTML и зависимости
активная запись ссылку на один готовый результат для показа

Правила публикации:

  • Переключение. Перед переключением продукт сверяет, что активная запись не изменилась с момента начала сборки. Если другой процесс уже опубликовал более новую версию, переключение останавливается и ничего не перезаписывает. Старое задание, завершившееся последним, не может затереть новую версию.
  • Откат — это новое переключение, а не возврат номера назад: продукт активирует прежний целый снимок под новым номером версии. Поэтому устаревший запрос не вернёт страницу к ещё более старому состоянию.
  • Ошибка сборки не создаёт активный снимок: посетитель продолжает видеть прежнюю страницу, если права на её показ действуют. При отзыве доступа прежний снимок не показывается.
  • Единица целостности — одна страница. Очередь может обновлять страницы сайта постепенно; атомарность всего сайта стандарт не требует.

Пример: переключение и откат

Опубликована статья с краткой шапкой. Активная запись имеет ревизию 7 и указывает на снимок краткой шапки:

JSON
{
  "schema": "product.composition_recipe_activation.v1",
  "activation_revision": 7,
  "snapshot_digest": "sha256:compact…"
}

Это запись продукта, а не формат Framework: имя schema выбирает продукт.

  1. Продукт собирает вариант с расширенной шапкой в новый снимок.
  2. Перед переключением он проверяет, что активная ревизия всё ещё 7. Если другой процесс уже опубликовал ревизию 8, переключение останавливается и ничего не перезаписывает.
  3. После успешного переключения активная ревизия — 8.
  4. Откат выбирает прежний проверенный снимок, но ставит ревизию 9. Старый запрос с ревизией 7 или 8 не вернёт страницу к устаревшему состоянию.

Кеш читают по отпечатку активного снимка. Изменение зависимости вызывает новую сборку, а не правку сохранённого результата.

Как это выполняют

Два типичных способа это выполнить:

  • приложение с базой данных хранит несколько готовых снимков и отдельную запись об активном и перед чтением, переключением и откатом заново проверяет права;
  • статический сайт роль активного снимка отдаёт всей сборке: сайт собирается во временном каталоге и заменяет прежний целиком только после полной проверки.

Поиск по документации

Введите минимум 2 символа

    Настройки

    Тема
    Размер шрифта
    Ширина страницы