我有以下情况:
自定义portlet使用扩展BasePortletDataHandler
的类发布它的内容并覆盖以下方法:
这在开发模式下运行良好,没有WebSeal。在控制面板中,您转到“网站页面”并调用“发布到实时”。
然而,在生产中,只要此过程花费超过2分钟,我们就会获得WebSeal超时。该过程仍然在后台运行,但是用户无法确定它是否已完成,是否有效或是否有效。他没有得到任何关于它的反馈。
有没有办法为控制面板实现自定义portlet来处理这些问题?如何获取/跟踪流程的状态以及如何使会话保持活动状态?
答案 0 :(得分:1)
我对liferay没有任何经验,但我每天都管理WebSEAL,所以我可以从这个角度处理你的问题。您可以增加各个路口的超时时间。我在过去遇到过类似的应用场景。我们不得不进行300秒的超时。
[junction:junction_name]
http-timeout = 300
https-timeout = 300
您可能还需要增加服务器超时:
[server]
client-connect-timeout = 300
问题是应用程序不通过TCP连接发送任何数据,因此WebSEAL超时连接。除非您可以更改应用程序的工作方式,否则您必须增加超时。优选地,您将使用AJAX或类似技术让客户端在程序启动后例行地向服务器查询状态。但是,我有一个与我们集成的客户,他们无法更改他们的应用程序代码,因此我也不得不为他们增加超时。