我在 Tapestry 中遇到了线程问题。
我有使用 Tapestry 的应用程序。当我从 5.3.8 更新到 5.4.3 时,我发现我的 ajax 请求没有在单独的线程中处理。
例如:我有一个在 Controller /类中执行的长进程。不过,我还有一个 JS 脚本,可以为组件生成 ajax 请求。在 Tapestry 5.3.8 中,这些请求得到了正常处理。当我切换到 5.4.3 时,我的请求未得到处理,直到 Controller 的主进程结束。
有人知道有关此行为的信息吗?
最佳答案
在 Tapestry JIRA 中进行一些挖掘后,我找到了答案:
简单总结一下:从Tapestry 5.4开始,Session对象是同步的,甚至读操作也需要写锁。因此,所有“长”操作都应该在单独的线程中运行,以使 ajax 调用正常工作(以免 GUI 线程卡住)。
编辑:在邮件列表中,我还得到了使用配置参数tapestry.session-locking-enabled
的提示关于java - 线程 Tapestry 5.3.8 与 5.4.3,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45352633/