【发布时间】:2013-06-08 05:46:17
【问题描述】:
问题
我们的 liferay 系统是与其他网络应用程序同步数据的基础。
为此,我们使用Model Listeners。
通过侦听器有很多 Web 服务调用和数据库更新,因此 Liferay 中的特定操作太慢了。
例如:
在 liferay 中添加User 时,我们需要触发大量 Web 服务调用来添加用户详细信息并使用用户数据更新其他系统,以及一些 liferay 自定义表。因此,添加用户需要花费大量时间,在极少数情况下,请求可能会超时!
由于UserListener中的代码只依赖于User Details,即使UserListener有任何异常,仍然会在Liferay中添加User,所以我们想到了以下解决方案。
我们在 liferay 中还有一个调度程序,如果在侦听器中执行代码时出现异常,它会修复问题。
建议的解决方案
我们考虑使用并发 API 使 UserListener 中的代码异步。
所以这是我的问题:
- 是否建议在 Model Listeners 中使用并发代码?
- 如果是,那么如果我们也通过此代码更新 Liferay 自定义表,例如事务或其他内容,是否会产生不利影响?
- 这种方法的其他一般优点和缺点是什么?
- 还有其他更好的方法可以在不影响用户体验的情况下实时更新其他系统吗?
感谢您对此事的任何帮助
【问题讨论】:
-
在lifery-forum也问过
标签: liferay listener liferay-6 liferay-hook