Использование XStream для потоковой передачи неизвестного (потенциально очень большого) числа объектов Java - PullRequest
0 голосов
/ 08 октября 2011

Я пытаюсь использовать XStream для потоковой передачи объектов между двумя процессами (которые, по сути, являются JVM). Я обнаружил, что подобный вопрос задавался на этом форуме раньше (пожалуйста, перейдите по следующей ссылке).

Лучший подход для сериализации XML для потоковой передачи с Java?

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

С другой стороны, решение, приведенное выше, прекрасно работает, если мы знаем все элементы коллекции в начале.

Пожалуйста, дайте мне знать, если кто-то сталкивался с таким требованием ранее и смог его решить.

1 Ответ

0 голосов
/ 08 октября 2011

Разбейте проблему на две части:

  1. Связь / связь между процессами
  2. Сериализация каждого отдельного объекта через соединение

Для части 1 трудно сказать, хотите ли вы сохранить одно соединение живым или открыть новое соединение, когда будет больше данных. Открытие нового соединения много, много раз может стоить дорого, поэтому используйте одно соединение, если вы обнаружите, что эта стоимость слишком высока.

Для второй части кажется более понятным поместить объект в собственный документ, а не пытаться объединить их все в один. Это должно быть просто реализовать с помощью XStream. Если вам нужно понятие «готово», аналогичное отправке окончательного закрывающего тега самого внешнего документа, отправьте пользовательское сообщение «выполнено», когда настанет время.

...