2012-01-04 55 views
0

我有一個webapp用spring3和struts 2寫的,它是在glassfish服務器上託管的。在這個應用程序中,我有兩個Web服務需要做一些後臺工作,而不會延遲訪問的方法響應。webservice with glassfish上的線程3.1.1

所以,現在我使用一個彈簧bean,它使用了一個org.springframework.core.task.TaskExecutor的實例,並從那裏運行我的新線程。

這是在glassfish上使用這個應用程序的正確/最佳實踐方法嗎?或者應該找到另一種方法來做到這一點?

回答

0

由於應用程序服務器是負責管理的,因此不建議創建自己的線程。請參閱Why is spawning threads in Java EE container discouraged?的解答

但是在實踐中,特別是如果它是那裏唯一的應用程序,您可能會確定,特別是如果您使用固定線程池。確保在取消部署應用程序時,所有線程均已消失。 (如果你在Spring容器中聲明它們,我希望Spring類會正確地處理undeploy/shutdown的處理)。

+0

是的,這是我在該服務器上運行的唯一應用程序。感謝您的鏈接。 – 2012-01-05 14:04:33

+0

請注意,現在有一種在Web容器中創建線程的制裁方式:http://stackoverflow.com/questions/3212255/java-ee-specification-and-multi-threading/19404307#19404307 – Erhannis 2017-02-02 15:01:24