Планировщик «Конвейер»
Соберите оркестратор фоновых задач: реестр со статусами, граф зависимостей с топологической сортировкой и обнаружением циклов, политику повторов, cron-расписание и тик планировщика. Время — виртуальные минуты.
Что тебя ждёт в этом пути
Что ты построишь
Оркестратор фоновых задач «Конвейер» из 25 задач в пяти паках, на виртуальных минутах вместо реального времени. Бесплатный пак — реестр задач: создание, добавление без дублей, поиск по id. Premium-паки собирают граф зависимостей с топологической сортировкой и обнаружением циклов, политику повторов с экспоненциальным бэкоффом, cron-расписание с поиском следующего запуска и минут до него, и финальный тик планировщика, который переводит задачи по машине состояний и прогоняет весь конвейер до конца. Каждое решение проверяется на скрытых входных данных.
Для кого
Для тех, кто хочет разобрать механику фонового планировщика — как в Celery, cron или очередях задач — на уровне кода, а не только конфигурации. Уровень средний: нужна база Python с функциями и словарями, дальше логика планировщика строится с нуля по ходу пути.
Чему научишься
- Хранить реестр задач без мутации исходного списка и без дублей по id
- Строить граф зависимостей и находить задачи, готовые к запуску прямо сейчас
- Выстраивать топологический порядок и честно падать на цикле в зависимостях
- Считать экспоненциальную задержку перед повтором и решать, когда исчерпан лимит попыток
- Проверять срабатывание cron-расписания «каждые N минут» и находить следующий запуск
- Собирать список просроченных задач, которые планировщик не успел обработать
- Переводить задачу по машине состояний и прогонять тики планировщика до завершения всего конвейера
Задачи пути — 5 модулей, 25 задач
Каждый модуль — навык. Решаешь задачи по порядку, и к финалу из них собирается рабочий результат.
Готов начать этот путь?
Зарегистрируйся — откроем путь прямо на первой задаче. Без установки и настройки, всё в браузере.