Разборы задач

Проектирование Job Scheduler

Сложный
Попробуйте решить эту задачу самостоятельно

Практикуйтесь с интерактивными подсказками и моментальной обратной связью

Перейти на Premium

Постановка задачи

⏲️ Что такое Job Scheduler (распределенный планировщик заданий)?

Распределенный планировщик заданий - это система, которая автоматизирует планирование и выполнение задач на нескольких узлах или машинах. Он позволяет запускать как регулярные задачи по расписанию, так и разовые / пакетные задания в определенное время.

Прежде чем переходить к решению, стоит договориться о терминах:

  • Задача (Task): абстрактное описание работы, которую нужно выполнить. Например, отправить email, сгенерировать отчет, сделать запрос к ChatGPT и т.д. Задачи переиспользуемы и могут выполняться много раз разными заданиями.
  • Задание (Job): конкретный экземпляр задачи. Задание должно содержать данные о том, какую задачу выполнить (task), когда ее выполнить (schedule), и с какими параметрами (parameters). Например: "отправить email (задача) с контентом "Ничего ты не знаешь, приходи в пещеру" на jon@snow.com (параметры) в пятницу в 18:00 (расписание).

Работа планировщика заключается в том, чтобы брать набор заданий и выполнять их согласно расписанию.

Функциональные требования

Основные требования

  1. Пользователи могут планировать задания на выполнение: немедленно, в конкретное время в будущем, по регулярному расписанию (например, "каждый день в 10:00").
  2. Пользователи могут мониторить статус своих заданий.

За рамками задачи

  • Пользователи могут отменять или переносить задания.

Нефункциональные требования

Перейдите на Premium, чтобы продолжить

Разблокируйте доступ к этой статье и всем остальным материалам с NowInterview Premium

Перейти на Premium