- internal/fold — свёртка по идентификатору доставки, тело из архива: тот же код, каким пойдёт пересборка витрины - приём зовёт свёртку на context.WithoutCancel с собственным дедлайном; исход разбора на код ответа не влияет - слой доставки хранится в delivery.derived_layer и наследуется от ПРЕДШЕСТВУЮЩЕЙ доставки автоматизации: без границы по времени свёртка переставала быть функцией от префикса журнала (1737 объектов против 1742) - task verify:archive — сходимость на живом архиве, 99 доставок из 99
18 lines
1.2 KiB
SQL
18 lines
1.2 KiB
SQL
-- +goose Up
|
|
-- Слой, выведенный для доставки. Нужен не отчётности, а самому выводу слоя:
|
|
-- доставка без плотных метрик наследует последний надёжно выведенный слой той
|
|
-- же автоматизации, и без хранения этой памяти первая же такая доставка после
|
|
-- перезапуска сервиса осталась бы без слоя (измерено: 2 доставки из 89).
|
|
--
|
|
-- Пустая строка означает «слой не выводился» — такие доставки в наследование
|
|
-- не участвуют.
|
|
ALTER TABLE delivery ADD COLUMN derived_layer TEXT NOT NULL DEFAULT '';
|
|
|
|
-- Поиск идёт «последний слой этой автоматизации»: сортировка по времени приёма
|
|
-- внутри автоматизации.
|
|
CREATE INDEX delivery_automation_layer ON delivery (automation_id, received_at DESC);
|
|
|
|
-- +goose Down
|
|
DROP INDEX delivery_automation_layer;
|
|
ALTER TABLE delivery DROP COLUMN derived_layer;
|