Как сохранить связь между веб-сервисами RESTful - PullRequest
0 голосов
/ 19 апреля 2011

У меня есть два спокойных веб-сервиса:

  1. getMarketData
  2. stopMarketData

getMarketData извлекает данные из внешнего сервиса. stopMarketData остановит процесс извлечения данных, извлекаемых из внешней службы.

Теперь проблема в том, что когда я запускаю getMarketData, он создает соединение с внешней службой и начинает извлекать данные (это непрерывный процесс, поскольку он непрерывно извлекает данные, пока мы не вызовем stopMarketData).

После этого, если я позвоню в stopMarketData webservice, он не остановит процесс выборки данных, так как соединение не в контексте getMarketData, так как я могу сохранить соединение между getMarketData и * 1022? * звонки в спокойный веб-сервис.

1 Ответ

0 голосов
/ 19 апреля 2011

Я не думаю, что вы должны поддерживать состояние в службах RESTful. Как бы вы масштабировали это решение для запуска на нескольких машинах или даже на нескольких процессах?

Если вы действительно хотите это сделать, вам нужно каким-то образом разместить соединение в глобальной области (например, в объекте Application, если вы используете JSP или ASP), доступной из нескольких запросов. Затем вызов stopMarketData может получить соединение из этой глобальной области и закрыть его. Этот подход определенно не очень масштабируемый.

Другим вариантом может быть использование асинхронной технологии, такой как управляемые сообщениями EJB. Вызовы startMarketData и stopMarketData просто отправляют сообщения на эти EJB для запуска и остановки соответственно.

Надеюсь, это поможет. Nate

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...