0

考虑服务,它thread在其中启动一些。是否会Tapestry 5部分管理该线程,例如关闭hibernate此类线程内的会话?(例如,我们可以Session从服务中传递这样的子线程内的对象。Tapestry在线程死亡后会安全地关闭这个会话吗?)。

4

2 回答 2

2

Tapestry 只能管理在你的 AppModule 中声明的东西。

作为一个简单的规则,如果您使用“new”关键字,它不会由 Tapestry 管理。

如果您希望 Tapestry 管理您的可运行文件,请查看 ParallelExecutor

如果你想模仿挂毯管理的线程,你必须在你的可运行对象完成后调用 Perthreadmanager.cleanup() 。

于 2013-03-23T01:37:19.810 回答
0

Hibernate 会话附加到处理当前请求的 Web 容器线程。

如果您决定生成自己的线程并将该 Session 传递给它,那么只有在 Tapestry 提交之前或上述 Web 容器的线程结束处理该请求之前完成更改,才会提交对该 Session 的更改。

Tapestry 对休眠会话的控制绑定到当前请求,在处理请求后会话关闭,因此生成另一个比使用会话的请求更长的线程将是一个坏主意。

于 2013-03-22T15:37:45.277 回答