Нужна помощь с задачей
Реализация механизма электронной очереди:
Три операции O1, O2, O3:
Три окна A, B, C
окно А может выполнять операции O1, O2
окно B может выполнять операции O2, O3
окно C может выполнять операции O1, O3
Далее единицы времени условны (назовём их такты).
для простоты можете считать их секундами
окна работают 100 тактов (1 день)
в очередь приходят клиенты (в случайный момент времени, по одному клиенту в момент.)
X1 требует операцию O1 с временем выполнения 4
X2 требует операцию O2 с временем выполнения 20
....
Требуется обработать очередь:
1. чтобы все клиенты ушли обслуженными, если какой-то клиент гарантированно не успеет быть обслужен, отказать
2. Все события: приход/уход/отказ логировать в базу данных
Технические требования:
веб-приложение на ASP.NET MVC 5, база данных MSSQL 2014, работа с базой через EntityFramework, Jquery, CSS
принцип функционирования:
1. вебстраница посредством AJAX создаёт клиента и отправляет его на сервер, там он помещается в очередь
2. раз в секунду сервер опрашивается, через AJAX и получает состояние окон, занято (номер клиента)или свободно. И состояние текущей очереди
на экране отображается
A B C Клиенты
1 - - - пришёл клиент X1 с операцией 02 сложности 2
2 X1(02-2) - - пришёл клиент X2 с операцией 02 сложности 2
3 X1(02-2) - X2(02-2) пришёл клиент X3 с операцией 03 сложности 8
4 - X3(03-8) X2(02-2)
и так до 100
Структура баз должна подразумевать возможность построения отчётов
1. Сколько каких операций суммарной сложности было проведено
2. Отчёты по окнам
3. проверка, скольки клиентам было отказано в обслуживании
Выполнять отчёты необязательно