Document committed outbox retries and transaction-safe preparation recovery
This commit is contained in:
1 parent
0995a1eac3
commit
8fefd510a6
2 files changed
+14
-1
No files matched your search
@@ -168,6 +168,17 @@ SQL-ошибка сохраняет все записи и файлы; сете
|
||||
Если rollback не закрыл собственную транзакцию, таймер не запускается повторно:
|
||||
модуль снимается и владелец останавливает ядро после poll.
|
||||
|
||||
Перед каждой сетевой попыткой очередь собственной транзакцией проверяет команду и
|
||||
фиксирует `retry_at=now+5с`. Только после commit выполняются проверка допуска и сеть;
|
||||
SQL-отказ сохраняет команду/дату и не отправляет пакет. За проход обрабатываются до16
|
||||
команд, периодический tick —10с. Пустая очередь освобождает свою транзакцию без
|
||||
вызова commit hook. Отсутствие маршрута, backpressure и отказ отправки сохраняют очередь.
|
||||
|
||||
Очистка неподтверждённых подготовок выполняется до workers и после их завершения.
|
||||
Если SQLite-транзакция открыта, весь recovery откладывается, файлы сохраняются:
|
||||
незакоммиченное удаление истории не доказывает отсутствие публикации. Инициализация
|
||||
модуля также отклоняет внешнюю транзакцию до изменения таблиц/таймера/сети.
|
||||
|
||||
В шапке desktop-клиента кнопка «Запросы расшифровки» видна при наличии запросов без решения
|
||||
и показывает их число.
|
||||
Список содержит участника, вложение, дату и отдельные кнопки выдачи/отказа.
|
||||
@@ -273,6 +284,8 @@ prepare/bind/step/finalize удаления метаданных; дополни
|
||||
Дополнительные проверки:13 SQL-отказов привязки авторской пары,25 наблюдения новой/существующей
|
||||
идентичности и60 операций wanted/downloaded. Сверяются все поля через независимый reader,
|
||||
в том числе в событии; старые ключи/метаданные/соседняя запись сохраняются.
|
||||
Открытое удаление истории при shutdown сохраняет опубликованные файлы; rollback и
|
||||
restart восстанавливают прежний снимок. Внешняя транзакция также запрещает повторный init.
|
||||
Проверяются канонический UUID,коллизия/внешняя транзакция/commit veto/ABORT/IGNORE,
|
||||
повторная ошибка в отделённом batch,восстановление при startup без сети и17 каналов
|
||||
с fallback после заполнения очереди16. Ручной обработчик передаёт все23 подписанных
|
||||
|
||||
@@ -12,7 +12,7 @@
|
||||
* Исходящий REQUEST сохраняется собственной транзакцией request+outbox после повторной проверки состояния.
|
||||
* Уведомление/отправка следуют после commit; внешняя транзакция откладывает весь проход файлов и очереди.
|
||||
* Перед сетевой попыткой отдельно фиксируется retry_at; отказ SQL не отправляет команду и сохраняет очередь/дату.
|
||||
* Пустая очередь завершает свою транзакцию без commit hook. Повтор — через5с, за проход не более16 команд.
|
||||
* Пустая очередь завершается без commit hook. retry_at отодвигается на5с; tick каждые10с, до16 команд за проход.
|
||||
* Расшифровка стартует после commit decrypting=1. До commit метаданных завершение остаётся у модуля:
|
||||
* таймер повторяет SQL без нового worker; не более 16 активных/ожидающих завершения файлов на instance.
|
||||
* quiesce останавливает повторы, destroy после workers освобождает также отложенные завершения.
|
||||
|
||||
Reference in new issue
Block a user