Выбор ответа Middle Кластер, воркеры, масштабирование обновлено

setInterval-крон при нескольких экземплярах

Вопрос

В сервисе setInterval раз в сутки рассылает дайджест. Сервис масштабировали до 4 реплик. Что произойдёт?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: Каждый пользователь получит 4 письма. Каждая реплика независимый процесс со своим таймером, и каждая выполнит рассылку.

Варианты ответа

  1. Каждый пользователь получит 4 письмаправильный ответ
  2. Рассылка уйдёт один раз: реплики договорятся автоматически
  3. Рассылка не уйдёт: таймеры в репликах отключаются
  4. Письма уйдут один раз, но в 4 раза быстрее

Разбор

Каждая реплика независимый процесс со своим таймером, и каждая выполнит рассылку. Такие задачи выносят в отдельный планировщик с одним исполнителем, в очередь с уникальным ключом задачи или защищают распределённой блокировкой.

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

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме