Перейти к содержанию

Идемпотентное создание заданий

Предотвращайте двойную печать при повторе запросов после превышения времени ожидания или сетевого сбоя.

Зачем печати идемпотентность

Время ожидания может истечь после того, как CloudPrint принял запрос, но до того, как ваша серверная часть получила ответ. Создание нового задания в этот момент способно напечатать документ дважды.

Как построить ключ

Используйте стабильный ключ бизнес-операции, например shipment-18451-label-v1. Он должен быть не длиннее 128 символов и оставаться одинаковым при повторе запроса с теми же данными. Намеренная повторная печать считается новой операцией и получает новый ключ.

Правила повторного использования

Для одного аккаунта одинаковые ключ и данные возвращают исходный результат. Тот же ключ с другими данными приводит к 409 Conflict. Сохраняйте ключ до первого запроса.

Восстановление после неопределённости

После сетевого сбоя повторите тот же запрос с тем же ключом. Получив print_job_id, сохраните его и проверяйте статус вместо создания нового задания.

Связанная документация

Руководства по интеграции CloudPrint, подключению локального агента и надёжной работе печати.