7.4. Проблемы приходят с нагрузкой

Работа над заданием

Задание принимается автоматически после нажатия на кнопку «Задание готово»

Чем больше фич успешно выпускала команда разработки «Удара легенд», тем больше игроков приходило в игру. Бизнес доволен, а вот команда технической поддержки не очень. Ведь если раньше отслеживать все пользовательские ошибки можно было на одном мониторе разработчика поддержки, то теперь следить за ними и своевременно реагировать стало нереально: и фичи (конечно же, которые писали не вы) полны багов, и баги эти случаются гораздо чаще (ведь игроков стало в разы больше).

Помогите команде поддержки. Напишите ограничитель скорости обработки запросов системой логирования. Все сообщения приходят в следующем формате:

{
  "message": "Cannot read property 'score' of undefined",
  "timestamp": 20,
}

Необходимо игнорировать все сообщения с одинаковым содержимым, которые приходили с промежутком менее пяти секунд от последнего (разница в timestamp меньше 5). И вместо их вывода дописывать в конец предыдущего такого же сообщения (x${количество повторений}): к примеру, Cannot read property 'score' of undefined (x3), если оно встретилось три раза за последние пять секунд.

Имейте в виду, что система логирования сейчас очень нагружена, поэтому все операции над логами нужно производить максимально быстро!

Пример приходящих сообщений
[
  {
    "message": "Cannot read property 'score' of undefined",
    "timestamp": 0,
  },
  {
    "message": "TypeError: 'undefined' is not an object",
    "timestamp": 0,
  },
  {
    "message": "Cannot read property 'score' of undefined",
    "timestamp": 3,
  },
  {
    "message": "TypeError: 'undefined' is not an object",
    "timestamp": 5,
  },
  {
    "message": "TypeError: 'undefined' is not an object",
    "timestamp": 10,
  },
  {
    "message": "Uncaught RangeError: Maximum call stack size exceeded",
    "timestamp": 14,
  },
  {
    "message": "Cannot read property 'score' of undefined",
    "timestamp": 15,
  },
  {
    "message": "ReferenceError: event is not defined",
    "timestamp": 18,
  },
  {
    "message": "Cannot read property 'score' of undefined",
    "timestamp": 21,
  },
  {
    "message": "ReferenceError: event is not defined",
    "timestamp": 22,
  },
]