考虑服务,在其中启动一些thread
。将Tapestry 5
部分管理此帖子。在这样的线程内关闭hibernate
个会话? (例如,我们可以在服务中传递Session
这样的子线程中的对象。线程死后,Tapestry
会安全地关闭这个会话吗?)。
答案 0 :(得分:2)
Tapestry只能管理AppModule中声明的内容。
作为一个简单的规则,如果你使用“new”关键字,它不是由tapestry管理的。
如果您希望tapestry管理您的runnable,请查看ParallelExecutor
如果你想模仿一个挂毯托管线程,你必须在runnable完成后调用Perthreadmanager.cleanup()。
答案 1 :(得分:0)
Hibernate会话附加到处理当前请求的Web容器的线程。
如果您决定生成自己的线程并将其传递给Session,那么只有在Tapestry提交之前或在上述Web容器的线程结束处理该请求之前完成对Session的更改才会提交。
Tapestry对hibernate会话的控制绑定到当前请求,在处理请求后会话关闭,因此产生另一个超出使用Session请求的线程将是一个坏主意。