2016-04-08 6 views
1

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

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

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

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


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

ответ

0

объявление 1. Вы можете видеть пример синхронизации диспетчера в akka bootcamp

и примере source:

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

объявлений 2. актер UI должен собирать только данные пользователя и отображения результатов, все остальные действия нужно оттолкнуть для обработки, чтобы сказать, что актер хранилища

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