我对Java EE没有太多的知识,但我目前正在学习它。Java EE中的长时间运行任务WebApp + icefaces
我想出了一个涉及用户调用的长时间运行任务(最长达几分钟)的项目。该任务由几个步骤组成。当然,我想向用户展示进展情况。
该项目使用Java EE与JPA,JSF和Icefaces。它运行在Glassfish上。
一个有经验的同事劝以下模式给我:
- 创建它创建了一个响应对象和处理该请求
- 每个步骤
- 在之后坚持响应对象的无状态,异步EJB支持bean,查询并显示响应对象
这很好。我唯一的问题是更新状态站点以反映进度。目前我正在通过一个简单的JavaScript页面每x秒刷新一次。
你知道一种方式/模式来反映从无状态ejb到jsf支持bean的当前步骤吗? 或者,我更喜欢这个,你知道一种方法来每隔x秒查询一个支持bean的值吗?
编辑:
我知道ICEfaces的的推动机制,但我想从计算EJB脱钩,原因如下状态更新站点:
- 的支持bean可能已被销毁,因为用户离开网站并稍后返回以获取结果
- 对于一个用户可能存在多个会话并因此存在多个豆
- 拥有干净的设计
当然,但不幸的是我不知道一个机制来通知支持bean的进展。 backing bean也可能已经被销毁,用户在计算完成后会回来。并且由于封装,我不想在EJB中使用任何icefaces代码。 – Michael 2011-12-13 22:14:07