如何在 JSF 2/Primefaces/JBoss 应用程序中监视一个长进程
How to monitor a long process in a JSF 2/Primefaces/JBoss application
我有一个 JSF 2/Primefaces/JBoss 应用程序,它必须不时 运行 一些长期进程。规范说,一旦流程启动,就必须对其进度进行监控,以显示其中间阶段的发生。
在开始时检索步骤总数,并且进度条必须根据流程执行期间计算的统计数据显示流程演变和剩余时间的估计。这不像只是显示某事正在发生,而是实际显示还有多少过程需要完成。
即使用户关闭页面,进程也必须继续,如果用户返回页面,它必须显示进程的当前进度状态。如果这个过程已经完成,那么应该显示一些信息,比如处理的对象数量,花费的总时间和一些其他统计信息,比如处理时间更长的对象。
如何在 JSF 2/Primefaces/JBoss 应用程序中完成?
你的问题可以分解为两个主要问题。
1. 如何记录和跟踪作业状态。
2. 如何在 UI.
中呈现此信息
根据您的要求和 JBoss 版本,您可能需要考虑使用 managed thread。您必须决定如何跟踪流程步骤。您可以在数据库中记录每个完成的步骤或将其保存在内存中。如何处理错误?如果过程没有完成怎么办?一旦您完成并实施了这些后端设计决策,您只需要弄清楚您希望 UI 是什么样子。
如评论部分所述,primefaces 提供了几个不同的选项,例如轮询或服务器发送的事件。如果您正在使用轮询,则离开页面并重新访问应该已经通过显示任何时间点的结果来处理。然后,您只需要每隔一段时间刷新视图即可。
我有一个 JSF 2/Primefaces/JBoss 应用程序,它必须不时 运行 一些长期进程。规范说,一旦流程启动,就必须对其进度进行监控,以显示其中间阶段的发生。
在开始时检索步骤总数,并且进度条必须根据流程执行期间计算的统计数据显示流程演变和剩余时间的估计。这不像只是显示某事正在发生,而是实际显示还有多少过程需要完成。
即使用户关闭页面,进程也必须继续,如果用户返回页面,它必须显示进程的当前进度状态。如果这个过程已经完成,那么应该显示一些信息,比如处理的对象数量,花费的总时间和一些其他统计信息,比如处理时间更长的对象。
如何在 JSF 2/Primefaces/JBoss 应用程序中完成?
你的问题可以分解为两个主要问题。 1. 如何记录和跟踪作业状态。 2. 如何在 UI.
中呈现此信息根据您的要求和 JBoss 版本,您可能需要考虑使用 managed thread。您必须决定如何跟踪流程步骤。您可以在数据库中记录每个完成的步骤或将其保存在内存中。如何处理错误?如果过程没有完成怎么办?一旦您完成并实施了这些后端设计决策,您只需要弄清楚您希望 UI 是什么样子。
如评论部分所述,primefaces 提供了几个不同的选项,例如轮询或服务器发送的事件。如果您正在使用轮询,则离开页面并重新访问应该已经通过显示任何时间点的结果来处理。然后,您只需要每隔一段时间刷新视图即可。