Актерский узор - как смоделировать структуру бронирования комнаты?

Я пытаюсь смоделировать систему бронирования номеров в отеле по образцу актера. просто для информации я использую akka.net для этого в .Net.

На данный момент я создал следующих актеров. 1. HotelActorRoomsActor (совокупность RoomActor)
3. BookingsActor (совокупность BookingActor)
4. EmployeesActor (совокупность EmployeeActor)
4. UIActor

В настоящее время, как я и планировал, я создаю систему следующим образом.
1. UIActor Принимает BookingInformation (регистрация, оформление, количество комнат)
2. Сообщите BookingsActor об информации.
3. BookingsActor создает / запускает новый BookingActor и передает информацию

4. На BookingActor Start он будет
4a. Расписание номеров для бронирования
4b. Расскажите комнатам о расписании, чтобы они блокировали себя
4c. График задач сотрудников по комнатам
4г. Расскажите выбранным сотрудникам об их задачах
4e. Сообщите системе, что бронирование было создано
4f. Скажите BookingsActor перезапустить BookingActor в определенное время в будущем (за 24 часа до фактической регистрации бронирования) и выключить.


Проблемы, с которыми я сталкиваюсь:
1. Как синхронизировать информацию о бронировании с помощью UIActor.
2. UIActor должен также иметь возможность сохранять информацию о нескольких бронированиях (для конкретного клиента и т. Д.), Как и где она должна быть сделано внутри паттерна актера?
3. Допустим, мне нужна информация о нескольких бронированиях от Date1 до Date2, где я должен сохранить эту информацию, чтобы позже получить ее?


person Parv Sharma    schedule 08.04.2016    source источник


Ответы (1)


ad 1. вы можете увидеть пример диспетчера синхронизации в akka bootcamp

и пример источника :

dispatcher = akka.actor.synchronized-dispatcher 
             #causes ChartingActor to run on the UI thread for WinForms

ad 2. Актер пользовательского интерфейса должен только собирать данные от пользователя и отображать результаты, все остальные действия должны быть переданы для обработки, чтобы, скажем, актор хранилища

ad 3. вам нужен поставщик хранилища - это может быть решение mongoDB или SQL. Передав сообщение субъекту хранилища, вы можете сохранить данные резервирования или получить их при необходимости.

person profesor79    schedule 08.04.2016