我有一个使用Java / Spring的客户端/服务器应用程序。客户端通过httpinvokers访问服务器并发出返回序列化对象的请求。
我们有一个调用超过50mb +序列化对象的调用。显然,此调用需要几分钟才能完成。有没有办法跟踪此通话的进度?例如,如果我可以在调用过程中测试传输的数据量,可能是通过使用单独的线程,这将是完美的。
感谢
答案 0 :(得分:2)
你必须做两个不同的调用(第二个是异步的)。您的服务器将实现一个观察者模式来更新传输到正在观察它的对象的数据。服务器将以块的形式写入这个50MB的数据而不是流。
观察者类将是您将异步调用的另一个类。观察者将保持返回已经传输了多少数据。
与在附件上传进度条中发布HTML5之前Gmail实施的概念相同。他们所做的是,通过html控件,他们上传了正在服务器端编写的附件,同时,他们使用flash对象向该服务器发送调用,以查看已保存的数据量。