отслеживание хода удаленного вызова, извлекающего сериализованный объект - PullRequest
0 голосов
/ 17 марта 2012

У меня есть клиент-серверное приложение, которое использует Java / Spring.Клиент обращается к серверу через httpinvokers и делает запросы, которые возвращают сериализованные объекты.

У нас есть вызов, который обрабатывает очень большой сериализованный объект 50 Мб +.Очевидно, что этот вызов занимает несколько минут для обработки.Есть ли способ отследить ход этого звонка?Например, было бы идеально, если бы я мог проверить объем данных, передаваемых во время вызова, возможно, используя отдельный поток.

спасибо

1 Ответ

2 голосов
/ 17 марта 2012

вам нужно будет сделать 2 разных вызова (2-й будет асинхронным).Ваш сервер будет реализовывать шаблон наблюдателя для обновления данных, которые передаются объекту, который его наблюдает.Сервер будет записывать эти 50 МБ данные порциями, а не потоком.

Класс наблюдателя будет другим классом, который вы будете вызывать асинхронно.Наблюдатель сохранит в своем составе, какое количество данных было передано.

Это та же самая концепция, которую Gmail реализовывал до выпуска HTML5 в строке прогресса загрузки вложений.Что они сделали, так это то, что с помощью html control они загрузили вложение, которое было написано на стороне сервера, и в то же время они использовали объекты flash для отправки вызова на этот сервер, чтобы узнать, сколько данных было сохранено.

...