我有一个使用Java/Spring的客户机/服务器应用程序。客户端通过httpinvokers访问服务器,并发出返回序列化对象的请求。
我们有一个调用,它拉取一个非常大的50mb以上的序列化对象。显然,此呼叫需要几分钟才能处理。有没有办法跟踪这次通话的进度?例如,如果我可以在调用过程中测试传输的数据量,那就太好了,也许可以使用单独的线程。
谢谢
发布于 2012-03-17 07:59:17
你将不得不进行两个不同的调用(第二个将是异步的)。您的服务器将实现一个观察者模式来更新传输到正在观察它的对象的数据。服务器将以块而不是流的形式写入这个50MB的数据。
观察者类将是您将异步调用的另一个类。观察者会不断返回已经传输了多少数据。
在HTML5发布之前,Gmail在附件上传进度条中实现了同样的概念。他们所做的是使用html控件上传正在服务器端编写的附件,同时,他们使用flash对象向服务器发送调用,以查看已保存了多少数据。
https://stackoverflow.com/questions/9745725
复制相似问题