Разборы задач
Проектирование Job Scheduler
Сложный
Попробуйте решить эту задачу самостоятельно
Практикуйтесь с интерактивными подсказками и моментальной обратной связью
Постановка задачи
⏲️ Что такое Job Scheduler (распределенный планировщик заданий)?
Распределенный планировщик заданий - это система, которая автоматизирует планирование и выполнение задач на нескольких узлах или машинах. Он позволяет запускать как регулярные задачи по расписанию, так и разовые / пакетные задания в определенное время.
Прежде чем переходить к решению, стоит договориться о терминах:
- Задача (Task): абстрактное описание работы, которую нужно выполнить. Например, отправить email, сгенерировать отчет, сделать запрос к ChatGPT и т.д. Задачи переиспользуемы и могут выполняться много раз разными заданиями.
- Задание (Job): конкретный экземпляр задачи. Задание должно содержать
данные о том, какую задачу выполнить (task), когда ее выполнить
(schedule), и с какими параметрами (parameters). Например: "отправить email
(задача) с контентом "Ничего ты не знаешь, приходи в пещеру" на
jon@snow.com(параметры) в пятницу в 18:00 (расписание).
Работа планировщика заключается в том, чтобы брать набор заданий и выполнять их согласно расписанию.
Функциональные требования
Основные требования
- Пользователи могут планировать задания на выполнение: немедленно, в конкретное время в будущем, по регулярному расписанию (например, "каждый день в 10:00").
- Пользователи могут мониторить статус своих заданий.
За рамками задачи
- Пользователи могут отменять или переносить задания.
Нефункциональные требования
Перейдите на Premium, чтобы продолжить
Разблокируйте доступ к этой статье и всем остальным материалам с NowInterview Premium
Перейти на Premium