JSF中数据的并行加载

问题描述

我有一个 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 (将#修改为@)