Skip to content

Latest commit

 

History

4 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Тестовое задание

Описание

Существует некая виртуальная компания, которая занимается предоставлением услуг аренды телефонных номеров.
У этой компании есть ограниченные мощности серверов.
Сервера считаются перегруженными-overload, если в один момент времени обрабатываются более 100 звонков. Руководитель компании хочет держать руку на пульсе и поэтому хочет видеть информацию из журнала в двух разрезах.
Часть работ по формированию представлений уже выполнена. Описана в абстрактном классе CallsReport, который имеет ряд зависимостей.

Входные данные

Журнал звонков. Файл data.json приложен к этому заданию. Формат:

[
   {
       "start_date_time": "2020-01-27 00:02:45",  //Метка веремени начала звонка. Y-m-d H:i:s
       "duration_seconds": "78"                   //длительность звонка в секундах
   },
   ...
]

Выходные данные

Информация из журнала в двух разрезах.

  1. В какие метки времени (посекундно) в течении одного исследуемого дня были перегрузки серверов
Метка времени в секундах, Y-m-d H:i:s Максимальная нагрузка в период времени
2020-01-27 12:42:28 201
2020-01-27 15:48:28 101
  1. Поминутная динамика максимального количества одновременных звонков. Без пропусков минут
Метка времени в минутах, Y-m-d H:i Максимальная нагрузка в период времени Наличие перегрузки сервера
2020-01-27 00:01 5 ok
2020-01-27 00:02 5 ok
2020-01-27 01:03 105 overload

Часть работ по формированию представлений уже выполнена. Описана в абстрактном классе CallsReport, который имеет ряд зависимостей

Для реализации необходимо

  1. Подключай ClassLoader и вперед. В качестве точки входа можешь использовать index.php
  2. Реализовать класс наследник от CallsReport
  3. В методе fillCallDtoSpl класса CallsReport наполнить объект \TestTask\callDtoSpl данными из источинка data.json
  4. Вывести результат посекундной перегрузки сервера в таблицу метод buildServerOverLoadTable
  5. Вывести результат поминутной нагрузки (без пропуска минут даже если не было звонков) на сервера в таблицу метод buildServerLoadTable

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages