<b>Скрипт должен падать предсказуемо: 6 проверок до запуска в прод</b>
Если python-скрипт живёт дольше одного запуска, его надо проверять не “на глаз”, а по схеме. Иначе он ломается там, где не ждёшь: на пустом файле, на кривой кодировке, на повторной записи, на таймауте API.
— Сначала проверяй вход: файл существует, формат тот, кодировка читается, обязательные поля не пустые.
— Потом ограничивай объём: лимит на размер файла, число строк, глубину рекурсии, размер ответа от внешнего сервиса.
— Любой внешний вызов оборачивай в retry + timeout, но retry делай только для идемпотентных операций.
— Логи пиши так, чтобы по одному сообщению было ясно: что обрабатывали, на каком шаге упали, какой был payload.
— Ошибки дели на ожидаемые и аварийные: первые обрабатывай, вторые пусть валят задачу с понятным trace.
Отдельная ловушка — временные файлы и частичные записи. Сначала пишешь в tmp, потом атомарно переименовываешь; иначе после падения у тебя остаётся “почти готовый” результат, который кто-то примет за валидный.
И ещё: любой скрипт без теста на один плохой кейс — это не автоматизация, а надежда. Лучше один раз зашить проверки, чем потом вручную искать, где именно всё съехало.
Python Web & Scripts — Django, FastAPI, скрипты
@python_web_scripts
<b>Скрипт должен падать предсказуемо: 6 проверок до запуска в прод</b>
Этот пост опубликован в Telegram-канале Python Web & Scripts — Django, FastAPI, скрипты. Подписаться можно по ссылке: @python_web_scripts.