我想从java调用一个shell脚本。可以使用 Runtime.exec 方法来完成。但问题是 shell 脚本将需要大约 3-4 小时才能执行,并且不建议将 Process.waitFor() 应用于如此长的进程,因为它会使当前线程处于等待状态 4 小时。这将发生在多线程环境中,其中多个 java 线程将调用多个 shell 脚本,每个脚本耗时超过 3 小时。(虽然线程数会很少)
我怎样才能使它异步,以便我的 java 进程不必等待,并且它以某种方式知道 shell 脚本何时完成。我没有使用 JMS 的选项。
请提出一个强大的解决方案。