← Все работы

Ответ потерялся, запись сохранилась

О коллекции

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

Дата сценария:

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

Дата выпуска кейса
РольОбработка повторов и восстановление после сбоя
ПроектКонцепция

О проекте

Цель

Не создавать вторую запись, если первая сохранена, но ответ о сохранении потерян.

Задача

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

Решение

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

Результат

Восемь доставок дают три записи. Повторы не добавляют строки, конфликт не перезаписывает данные, а запись после аварийного завершения находится при повторе.

Что передано заказчику

  • Стенд восстановления.py
  • Фактический прогон.json
  • Доставки.json

Инструменты и подход

Инструменты

Python · Не указанSQLite · Не указан
Указано специалистом

Навыки

Автоматизация процессовJavaScriptИнтеграция APIИдемпотентностьОчереди и повторные попытки

Открыть работу

Самый неудобный момент для остановки

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

Повтор и конфликт — разные ветки

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

Файлы результата

Вклад и команда

Написал локальный адаптер SQLite, воспроизвёл остановку процесса после фиксации записи и проверил восстановление при новой доставке.

Ссылки и материалы

Связанные услуги

примерАвтоматизацияСинтетические данные

Изолированный стенд локального адаптера. Подключение к внешней CRM не заявляется.

Авторские материалы доступны для изучения и самостоятельной проверки.

Обсуждение

Задайте вопрос об этой работе, обсудите решение или поделитесь своим опытом.

Обсуждение открыто для всех участников.

Загружаем комментарии…