有谁知道如何监控GWT中长时间运行的服务器端进程,而不是轮询服务器?我们需要在服务器上进行一些耗时的,多步骤的I/O绑定处理,并且在浏览器中显示此处理的进度将会很好。GWT中的进程监控
1
A
回答
3
这在GWT中很容易处理。
长时间运行的过程是由GWT RPC调用触发的,在这种情况下,您有入口点,或者不是,在这种情况下,您需要手动启动此过程。
请记住,GWT RPC调用是异步的,所以他们不需要立即返回。您需要RPC调用,如checkStatus()
。所以,你可以做这样的事情:
public class JobStatus {
private boolean done;
// other info
// ...
}
public class JobStatusCallback<JobStatus> extends AsyncCallback {
public final void onSuccess(JobStatus result) {
if (result.isDone()) {
done();
} else {
checkAgain();
}
}
public final void onFailure(Throwable caught) {
error(caught);
checkAgain();
}
public void done() { // override
}
public void checkAgain() {
service.checkStatus(this);
}
public void error(Thorwable t) { // override
}
});
,并在您的RPC服务:
void checkStatus(AsyncCallback<JobStatus> callback);
您的服务器可以采取只要它喜欢(合理范围内),从返回的checkStatus()。它可以返回,因为作业已完成或仅通过作业状态更新。上述操作将继续循环直到完成作业状态标志。
0
我认为这取决于你的过程,但如果你打算做类似数据流的事情,你可以使用Server Push(或Comet)技术.GWT支持Comet实现。 谷歌GWT + Comet或GWT + COMET + Tomcat,我在“Google Web Toolkit应用程序”书(gwtapps.com)中阅读了关于comet和gwt的内容。
相关问题
- 1. 在Python中监控进程?
- 2. 监控多进程
- 3. 监控远程进程
- 4. 监控窗口进程
- 5. 的Python:进程/线程监控
- 6. OTP监控程序可以监控远程节点上的进程吗?
- 7. 在GWT中进行控制
- 8. AFNetworking监控所有的下载进程
- 9. 如何监控iPhone的后台进程?
- 10. Python监控stderr和子进程的stdout
- 11. 监控进程内部的unix资源
- 12. 使用Python进行简单的远程进程监控
- 13. Linux中每个进程的编程资源监控
- 14. SPARK:Pyspark:如何监控python工作进程
- 15. Linux进程性能监控代理
- 16. 从监控进程获取信息
- 17. CoreOS Kubernetes如何监控节点进程?
- 18. 监控Tomcat进程CPU峰值
- 19. 监控与icinga/nagios jboss进程
- 20. 监视进程
- 21. C#进程监控线程饲料AJAX控制台
- 22. 监控Node.js进程中的最大内存消耗
- 23. urllib2 POST进度监控
- 24. 使用100%IO监控并杀死失控进程?
- 25. scala actors的线程监控
- 26. GWT中的tabPanel上的监听器
- 27. 在监控中滚动重启进程组
- 28. 监控Chrome中的下载过程
- 29. 监控appdynamics中的java应用程序
- 30. Ruby - 如何控制外部进程并监控Web应用程序的输出?
感谢您的回答。现在,我看到它,这似乎很明显:) – Phil 2009-01-04 02:46:35