Привет, друзья! 👋
Завершил второй спринт Jobs Service: 10 из 10 задач закрыты ✅
Цель была в том, чтобы сервис сам поддерживал вакансии в актуальном состоянии. Что получилось:
▪️ 🔄 Автообновление. Parser стал долгоживущим сервисом со своим планировщиком: у каждого источника своё расписание, а сбой одного не останавливает другой.
▪️ 🗑 Актуальность. Если вакансия пропала из источника, она автоматически помечается неактуальной, а если вернулась, снова попадает в выдачу.
▪️ 📐 Единый формат. Добавил период оплаты и формат работы (офис, удалёнка, гибрид), поэтому вакансии из обоих источников выглядят одинаково.
Автоматизированных тестов теперь больше 240, включая сценарии гонок, таймаутов и сбоев.
Главный вывод ретроспективы: основная сложность оказалась не в формате данных, а в надёжном жизненном цикле обновления: повторные попытки, конкурирующие операции, согласованность PostgreSQL и Redis. Теперь такие вещи проектирую с заранее описанных состояний и переходов.
Сегодня стартовал третий спринт, займусь дубликатами вакансий. Следите за продолжением! 🚀