Перейти к содержимому

Пост канала

System Design
  1. Сегодня у нас уровень Hard, одна из самых сложных задач System Design, которую обычно дают на Staff+ уровне.  Мы спроектируем распределенный планировщик задач - систему, которая запускает задания по расписанию или в нужное время. Она должна масштабироваться до 10 тысяч запусков в секунду, стартовать задачи с точностью до 2 секунд и не терять их, даже если воркер упадет во время работы. В статье разберем, как: • хранить описание задачи отдельно от расписания ее запусков и партиционировать базу, чтобы быстро находить ближайшие задания • запускать задачи с точностью до 2 секунд и не перегружать базу частыми запросами, используя буферную очередь с отложенной доставкой • отслеживать упавшие воркеры и перезапускать задачи через таймаут видимости в очереди вместо постоянных проверок каждого сервера • защититься от повторного выполнения одной и той же задачи

    Открыть в MAX
    Просмотры
    49
    ER
    20,4%
    Реакции
    10