jsf-2 primefaces jboss7.x

Cómo monitorear un proceso largo en una aplicación JSF 2/Primefaces/JBoss



jsf-2 jboss7.x (1)

Tu pregunta se puede dividir en dos problemas principales. 1. Cómo registrar y rastrear el estado de un trabajo. 2. Cómo presentar esta información en la UI.

Dependiendo de sus requisitos y su versión de JBoss, es posible que desee considerar el uso de un hilo administrado . Debe decidir cómo rastreará los pasos del proceso. Puede registrar cada paso completado en una base de datos o mantenerlo en la memoria. ¿Cómo se manejarán los errores? ¿Qué pasa si el proceso no se completa? Una vez que haya completado e implementado estas decisiones de diseño de back-end, solo necesita averiguar cómo quiere que sea la UI.

Como se mencionó en la sección de comentarios, Primefaces ofrece un par de opciones diferentes, como sondeos o eventos enviados por el servidor. Si está utilizando encuestas abandonando la página y la nueva visita ya debería ser manejada presentando el resultado para cualquier punto en el tiempo. A continuación, solo necesita actualizar la vista en un intervalo.

Tengo una aplicación JSF 2 / Primefaces / JBoss que tiene que ejecutar algunos procesos a largo plazo de vez en cuando. La especificación dice que una vez que el proceso se inicia, su progreso debe ser monitoreado, mostrando la ocurrencia de fases intermedias de la misma.

El recuento total de pasos se recupera al principio y una barra de progreso debe mostrar la evolución del proceso y la estimación del tiempo restante, en función de las estadísticas calculadas durante la ejecución del proceso. No es solo mostrar que algo está sucediendo, sino mostrar cuánto falta por hacer.

Incluso si el usuario cierra la página, el proceso debe continuar y, si el usuario vuelve a la página, debe mostrar el estado de progreso actual del proceso. Si el proceso ya está terminado, se deben presentar algunas informaciones, como el número de objetos procesados ​​y, el tiempo total empleado y algunas otras estadísticas, como el objeto que tardó más en procesarse.

¿Cómo lograr eso en una aplicación JSF 2 / Primefaces / JBoss?