RouteDeskТехническая поддержка
Диалог с ИИ

Восстановление после тайм-аута создания отправления

Версия 2.7

Спросить ИИ

Что зафиксировать до вызова

В локальном хранилище свяжите намерение создать отправление с номером заказа, телом запроса и Idempotency-Key. Сделайте запись до сетевого вызова, чтобы новый процесс мог прочитать её после перезапуска. Идентификатор заказа и ключ операции решают разные задачи: один связывает данные магазина, второй защищает повтор конкретного запроса. Сохраните среду и время первой попытки.

Повтор с исходными параметрами

Если клиент не получил ответ на создание, исход операции неизвестен. Для повторной отправки используйте тот же Idempotency-Key и то же тело. Запись ключа хранится 24 часа. Если повтор отправляет тело, отличающееся от ранее сохранённого, RouteDesk вернёт HTTP 409. Избегайте повторной сборки тела из текущей карточки заказа: адрес или параметры упаковки могли измениться после первой попытки.

Обработка конфликта 409

Сравните сохранённый снимок запроса с данными повтора. Частая причина конфликта на стороне клиента — очередь повторов читает обновлённую версию заказа. Для той же операции восстановите прежний снимок. Если пользователь действительно хочет внести изменение, сначала установите результат первоначального запроса. Сопоставьте запись магазина с кабинетом, а затем примените подходящую процедуру по этапу отправления.

Если прошло больше 24 часов

Проверьте кабинет и сохранённые идентификаторы, чтобы установить, было ли создано отправление. После истечения срока хранения ключа прежний ключ не обеспечивает защиту от повторного создания. Если состояние нельзя подтвердить, передайте случай сотруднику вместе с временем и номером заказа. В журнале локальной системы оставьте статус «требуется сверка», чтобы оператор видел, почему автоматический повтор приостановлен.

Как закрыть восстановление

Когда номер RouteDesk подтверждён, привяжите его к первоначальной записи и обновите состояние задания. Если несколько исполнителей могут продолжить одно задание, блокируйте параллельное создание по локальному идентификатору операции. Проверьте, что интерфейс показывает один результат и что следующие webhook сопоставляются с этой же записью. Сохраните обезличенную последовательность попыток для анализа тайм-аутов.

Проверка сбоя между записью и ответом

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

Что должен видеть оператор

Покажите, что результат уточняется, и сообщите, какой номер заказа проверяет дежурный. Когда операция требует ручного разбора, выведите её последнее известное состояние и причину остановки. Не позволяйте кнопке обычного повтора обходить таблицу исходных операций: интерфейс должен обращаться к той же записи, что и фоновый процесс.