0

我有一个使用 Java/Spring 的客户端/服务器应用程序。客户端通过 httpinvokers 访问服务器并发出返回序列化对象的请求。

我们有一个调用一个非常大的 50mb + 序列化对象。显然,这个呼叫需要几分钟的时间来处理。有没有办法跟踪这个电话的进度?例如,如果我可以在通话进行时测试传输的数据量,那将是完美的,也许通过使用单独的线程。

谢谢

4

1 回答 1

2

您将不得不进行 2 次不同的调用(第二次将是异步的)。您的服务器将实现一个观察者模式来更新传输到正在观察它的对象的数据。服务器将以块的形式而不是流的形式写入这 50MB 数据。

观察者类将是您将异步调用的另一个类。观察者将继续返回已经传输了多少数据。

这与 Gmail 在 HTML5 发布之前在附件上传进度栏中实现的概念相同。他们所做的是使用 html 控件上传正在写入服务器端的附件,同时,他们使用 flash 对象向该服务器发送调用以查看已保存多少数据。

于 2012-03-16T23:59:16.650 回答