В продолжение истории про X.Spectator – сегодня таки нашел время и добавил небольшой пример использования.
В качестве примера взял взаимодействие библиотеки и издательства
📚. Логика следующая: в библиотеке есть определенное колиечество книг. Время от времени посетители приходят в библиотеку и берут одну книгу. Также есть издательство, которое время от времени выпускает некоторое количество книг (от 0, до 10).
Чтобы библиотека могла нормально функицонировать в ней постоянно должно быть какое-то количество книг.
Собственно задача решается довольно просто: создается экземпляр IProbe, который проверяет количество книг в библиотеке и не вышло ли оно за граничные значения. Наблюдатель, через определенные промежутки времени опрашивает
LibraryServiceProbe
, и если видит
👀, что что-то пошло не так - меняет статус системы
🛑.
Основной же сервис (
CityHostedService
🏙) в рамках которого функционирует весь пример, в случае, когда статус системы изеняется на
Danger
завозит новые книги в библиотеку.
Все предельно просто и (я надеюсь) позволяет понять, как использовать
X.Spectator
в своих проектах.
Пример можно посмотреть тут:
https://github.com/ernado-x/X.Spectator/tree/master/examples/Example.App