我想從java調用一個shell腳本。它可以使用Runtime.exec方法完成。但問題是shell腳本需要大約3-4個小時才能執行,並且建議不要將Process.waitFor()應用於如此長的進程,因爲它會使當前線程保持等待狀態4個小時。這將發生在多線程環境中,其中幾個Java線程將調用多個shell腳本,每個腳本耗費3個多小時。 (雖然線程的數量很小)從Java代碼調用shell腳本
我怎樣才能使它異步,以便我的java進程不必等待,並以某種方式知道何時完成shell腳本。我沒有選擇使用JMS。
請提出一個可靠的解決方案。
是的,這是真的,但我的問題是,等待這麼長時間的採取過程是可取的嗎?難道它不是真正的異步嗎? – Hemanshu
否 - 如果您確定一旦啓動它就不需要關心,是的 - 如果您需要在完成時執行某些操作或處理可能會引發的異常 –