Вы хотели бы реализовать Pull GetData()
или Push TakeData()
на основе того, как будет выглядеть проблема / решение в реальной бизнес-проблеме. Очень грубый пример - while implementing a fire alarm
. Я бы заставил его толкнуть эту информацию всем людям в здании, даже если они не ожидают (polling
), что здесь TakeData()
более подходит. Если я хочу внедрить GetEmployeeSalary
, мне редко нужно передавать эту информацию всем подписчикам, поскольку это конфиденциальная / конфиденциальная информация, которую я хотел бы предоставить людям, которые ее запрашивают, также после проверки, что им разрешено сделать это здесь GetData()
имеет больше смысла.
Я не знаю, какую технологию вы используете, но должны быть механизмы для реализации модели push или pull (по крайней мере, WCF имеет эти WS-Eventing ).
При нажатии - В идеале, когда существует реальный мир, необходимо обновить несколько систем / клиентов с помощью обновления. Представьте себе биржевую веб-службу, и каждый клиент интересуется разными цитатами. Возможно, имеет смысл отправлять push-уведомления платным клиентам о каждом изменении, касающемся тикера, который интересует каждого клиента, и в то же время разрешает извлекать данные типа GetData()
с отложенными данными для бесплатных клиентов.
- Используйте push, когда вы видите опрос (опрос - это потеря ресурсов)
- Предпочитать push при наличии требований распределенной обработки событий в веб-сервисах.