问题描述
我有一个 JSF/Primefaces 页面,用于显示表格的内容。在这个表中有一个计时器的结果,它每 15 分钟测试一些相关服务的可访问性。我在桌子下方还有一个刷新按钮,可以直接开始测试。某些服务的测试可能需要很长时间,并且测试时页面不会冻结。
我想知道,是否有可能以所有并行方式异步启动这些测试,并且页面会显示对服务的测试是否仍在运行,或者是否有结果。
我知道这对于一个表来说可能很困难,但如果你认为它太复杂了,那么如果能够证明测试函数仍在运行就更好了。
简化代码:
<h:form id="statusfrm">
<div class="card">
<p:dataTable var="sys" value="#{statushandler.availableList}"
showGridlines="true" size="small">
<p:column headerText="System">
<h:outputText value="#{sys.systemName}" />
</p:column>
<p:column headerText="Verfügbarkeit">
<h:outputText value="#{sys.availability}" />
</p:column>
<p:column headerText="Letzte Prüfung">
<h:outputText value="#{sys.lastUpdate}" rendered="#{not sys.requestPending}"/>
<h:outputText value="Pending..." rendered="#{sys.requestPending}"/>
</p:column>
</p:dataTable>
</div>
<p:commandButton value="Neu laden" icon="pi pi-refresh"
actionListener="#{statushandler.refreshParameter}"/>
</h:form>
在状态处理程序中
public String refreshParameter() {
Async: Interface1.checkSystem();
Async: Interface2.checkSystem();
Async: Interface3.checkSystem();
Async: Interface4.checkSystem();
return null;
}
目标是每次用户返回带有表格的页面时,系统都知道某些系统有待处理的请求。
但我也会尝试使用 @Inject @Push
的解决方案,这看起来也很有用。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)