Есть очередь в Редисе (возможно, через стрим).
Несколько производителей непрерывно генерируют случайные целые числа в диапазоне и пишут их в эту очередь. Сгенерированные числа могут повторяться. Производитель не отслеживает уникальность отправляемых чисел, не имеет данных о других производителях, не хранит список сгенерированных чисел.
Потребитель вычитывает числа из очереди. Если такое число уже было получено, то оно игнорируется. Если нет, то вместе числом сохраняется дата, когда было получено число.
Когда потребитель собрал все возможные числа в диапазоне, процесс генерации и потребления чисел останавливается, результат нужно сохранить в виде JSON в файловую систему.
Конфигурируется:
- Количество производителей
- Диапазон случайных чисел
Пример JSON с результатами для записи в файл:
{ "timeSpent": 1000, "numbersGenerated": [{"value": 1, "date": "..."}]}
Устанавливаем зависимости и запускаем приложение:
npm install -g typescript ts-node
npm install
npm start
Результат будет в файле result.json.