当您想通过单击用户界面(例如漂亮的 jsf 页面)来启动运行时间超过几个小时的脚本(.sh、jar、.py、.pl...)时。 抛出进程的最佳方法是什么? Running.exec() 方法、线程的使用还是其他什么? 谢谢。
最佳答案
绝对不要在 Java Web 应用程序中使用长时间运行的线程。将带有任务的消息(最好通过队列(例如rabbitmq))发送到具有自己的线程池的单独应用程序,然后该应用程序将独立处理Web应用程序用户请求的长时间运行的任务。
如果您的系统没有安装消息传递系统,并且您发现管理一个消息系统的开销太高,并且您已经在使用一些 sql 或 no-sql 或任何存储,那么您可能可以调整该存储来使用用于网络应用程序和新的单独的长请求运行程序应用程序之间的通信。
关于java - 从 java web 应用程序启动很长的后台进程的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23312828/