我有一个用弹簧3和struts 2编写的webapp,它托管在glassfish服务器上。在这个应用程序中,我有两个web服务,需要做一些后台工作,而不会延迟访问的方法响应。
所以,现在我使用一个使用org.springframework.core.task.TaskExecutor
实例的spring bean,然后从那里运行我的新线程。
这是在glassfish上使用此应用程序的正确/最佳实践方法吗?或者应该找到另一种方法吗?
答案 0 :(得分:0)
不鼓励创建自己的线程,因为应用服务器是负责的。查看Why is spawning threads in Java EE container discouraged?
的答案然而在实践中,特别是如果它是那里唯一的应用程序,您可能没问题,特别是如果您使用固定的线程池。取消部署应用程序时,请确保所有线程都已消失。 (我希望Spring类能正确处理undeploy / shutdown,如果你在Spring容器中声明它们的话。)