我有一个使用Spring在Tomcat上运行的Web应用程序。在同一台机器上有一个普通的Java应用程序。异步调用Web服务器的应用程序
我想通过从Web服务器调用Java应用程序来执行Java应用程序,但是我想让应用程序不会使用服务器的资源(它涉及分类器的培训,因此它可能占用很多资源和时间),它不能挂起服务器(所以它必须异步调用)。
有没有办法做到这一点?
我有一个使用Spring在Tomcat上运行的Web应用程序。在同一台机器上有一个普通的Java应用程序。异步调用Web服务器的应用程序
我想通过从Web服务器调用Java应用程序来执行Java应用程序,但是我想让应用程序不会使用服务器的资源(它涉及分类器的培训,因此它可能占用很多资源和时间),它不能挂起服务器(所以它必须异步调用)。
有没有办法做到这一点?
你有两种选择。
做一个exec
和使用java
命令启动一个独立的JVM实例。
产生一个新的线程 - 这将使用服务器的资源。
您还可以合并选项1和2并创建一个执行exec
调用的线程。
是的,从Web服务器注册RMI回调与独立的Java应用程序。
当Web应用程序请求独立应用程序时,它将是同步调用并且不需要很长时间。 一旦独立应用程序准备好了结果,它将使用RMI回调调用Web应用程序。
在您的Java应用程序中,创建一个线程并在其上执行代码。 Java应用程序将把该调用返回给Web服务器。