Recovery сценарии
После перезапуска DataHUB
DataHUB — stateless сервис: при перезапуске он восстанавливается автоматически и переподключается к RabbitMQ и PostgreSQL.
Что нужно проверить после перезапуска:
- RabbitMQ и PostgreSQL доступны до запуска DataHUB (зависимость в
docker-compose). - Очереди в RabbitMQ не удалились: DataHUB создаёт очереди при старте, но если RabbitMQ тоже перезапускался — убедиться, что очереди с флагом
durable: trueсохранились. - Сообщения, которые были «в полёте» в момент остановки, DataHUB повторно доставит — получатели должны быть идемпотентными.
После перезапуска RabbitMQ
RabbitMQ с персистентными очередями (durable: true) сохраняет сообщения между перезапусками.
- После старта RabbitMQ перезапустить DataHUB, чтобы он переподключился к брокеру.
- Очереди без флага
durableбудут удалены — перезапуск DataHUB пересоздаст их. - Сообщения из non-durable очередей будут потеряны — DataHUB не хранит копию.
После перезапуска PostgreSQL
- PostgreSQL поднимается с данными из volume — данные сохраняются.
- После старта PostgreSQL перезапустить DataHUB.
- Если при старте DataHUB в логах
password authentication failed— убедиться, что пароль в конфигурации DataHUB совпадает с актуальным паролем пользователя в БД (не переменнойPOSTGRES_PASSWORD, а черезALTER USER).
После перезапуска 1С-сервера
- Регламентное задание «ДатаХабОбменСДатаХаб» восстановится автоматически — проверить через Администрирование → Регламентные задания.
- Если токен истёк за время простоя — нажать «Авторизация» в форме настроек для получения нового токена.
- Проверить «Текущее состояние» в форме настроек — нет ли накопившихся ошибок.
- Входящие сообщения, которые DataHUB пытался доставить во время простоя 1С, будут повторно доставлены при возобновлении опроса.
После сбоя сети между 1С и DataHUB
- Соединение восстанавливается автоматически при следующем цикле регламентного задания.
- Сообщения, отправленные в период сбоя, остаются в очереди исходящих со статусом «Ожидание отправки» и будут отправлены при восстановлении соединения.
- Входящие сообщения накапливаются в RabbitMQ и будут доставлены после восстановления.
- При длительном простое проверить, не истёк ли refresh token — при истечении потребуется ручная повторная авторизация.
После перезапуска MinIO (S3)
MinIO хранит данные в volume — файлы сохраняются между перезапусками.
- После старта MinIO проверить доступность:
curl http://<minio-host>:9000/minio/health/live. - Если получатели получали 403 во время простоя MinIO — это нормально; presigned URL в сообщениях остаются корректными до истечения срока действия.
- Проверить, не истёк ли срок presigned URL для сообщений, полученных во время простоя.
Аварийный сброс зависших сообщений
Если после восстановления инфраструктуры часть сообщений осталась в нештатных статусах:
- Статус «В обработке» без движения — признак того, что процесс прервался. Сбросить на «Ожидание обработки».
- Статус «Ошибка обработки» — исправить причину ошибки, затем сбросить статус.
- Статус «Ожидание отправки» при восстановленном соединении — регламентное задание подберёт записи автоматически; если не подбирает — перезапустить задание вручную.