gpt4 book ai didi

java - GWT 中的流程监控

转载 作者:行者123 更新时间:2023-11-30 01:40:31 25 4
gpt4 key购买 nike

除了轮询服务器之外,有谁知道如何在 GWT 中监视长时间运行的服务器端进程?我们需要在服务器上进行一些耗时、多步骤、I/O 密集的处理,如果能在浏览器中显示此处理的进度就太好了。

最佳答案

这在 GWT 中相当容易处理。

长时间运行的进程要么由 GWT RPC 调用触发,在这种情况下您有入口点,要么没有入口点,在这种情况下您需要手动启动它。

请记住,GWT RPC 调用是异步的,因此不需要立即返回。您需要像 checkStatus() 这样的 RPC 调用。所以你可以做这样的事情:

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() 返回。它可以因为作业已完成或只是作业状态更新而返回。以上将继续循环,直到设置作业状态完成标志。

关于java - GWT 中的流程监控,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/409619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com