Skip to content

Latest commit

 

History

History
31 lines (21 loc) · 1.84 KB

File metadata and controls

31 lines (21 loc) · 1.84 KB

Тестовое задание: Круглый Квадрат

Задача

Есть очередь в Редисе (возможно, через стрим).

Несколько производителей непрерывно генерируют случайные целые числа в диапазоне и пишут их в эту очередь. Сгенерированные числа могут повторяться. Производитель не отслеживает уникальность отправляемых чисел, не имеет данных о других производителях, не хранит список сгенерированных чисел.

Потребитель вычитывает числа из очереди. Если такое число уже было получено, то оно игнорируется. Если нет, то вместе числом сохраняется дата, когда было получено число.

Когда потребитель собрал все возможные числа в диапазоне, процесс генерации и потребления чисел останавливается, результат нужно сохранить в виде JSON в файловую систему.

Конфигурируется:

  • Количество производителей
  • Диапазон случайных чисел

Пример JSON с результатами для записи в файл:

{ "timeSpent": 1000, "numbersGenerated": [{"value": 1, "date": "..."}]}

Как запустить

Устанавливаем зависимости и запускаем приложение:

npm install -g typescript ts-node
npm install
npm start

Результат будет в файле result.json.