Войти Регистрация
Data base

138. Антифрод после падения: недочитанные переводы

Сложная

Redis · Redis 7.4.11

Переводы между картами пишутся в стрим transfers:antifraud. Их читает группа antifraud; у каждого обработчика своё имя, worker-1 — один из них. Получив перевод, обработчик проверяет его и подтверждает командой XACK.

worker-1 упал посреди пачки: часть переводов получил, но не подтвердил. После рестарта он должен сначала перепроверить свои неподтверждённые переводы, а уже потом брать новые. Какая команда вернёт ему именно их (не больше 10)?

В работе: Очереди задач с подтверждением: антифрод, отправка уведомлений, начисление кешбэка.

Как проверяем Движка Redis в браузере пока нет, поэтому здесь не запрос, а выбор решения. Выберите один вариант. После ответа — почему каждый вариант верный или нет. Ответ один на подход: после него показываем разбор.
стримыXADDXREADGROUPXACKгруппы потребителей

Источник: на данных банка: поток переводов для антифрода. Условие пересказано своими словами.

Давали на собеседовании? Ответов пока мало — ваш поможет.

Что нужно выполнить после рестарта, чтобы worker-1 получил свои неподтверждённые переводы?

  • XREADGROUP … worker-1 … STREAMS transfers:antifraud 0
  • XREADGROUP … с >
  • XRANGE по всему стриму
  • Чтение от имени другого обработчика