我一直在尋找一種以編程方式讓部署自行停止的方法。讓耳朵部署以編程方式將自己標記爲失敗
對於我們的用例,我們部署幾個耳朵,其中一個是最重要的耳朵,其他耳朵依賴於它。我們確信重要的耳朵首先部署,其他人開始並行部署。
我們面臨的問題是重要的耳朵可以在升級模式,這是有效的。
在開始之後,我們檢查runmode,當它不正常時,我們拋出一個RuntimeException。檢查每個耳朵的部署,發生在Singleton啓動EJB3 Bean中。但是當這些拋出RuntimeException時,部署仍然是活動的。我想通知容器,部署應該標記爲失敗。是這樣的可能嗎?
我們使用的技術有:Wildfly 10,Java-ee 7,EJB3。
我在使用命令行CLI停止部署的stackoverflow上找到了一個解決方案。 Can a deployment stop itself?在我看來,它應該有可能在源代碼本身做到這一點。
有什麼想法?
不知道部署選項,但簡單地提供REST服務在部署工作時返回「OK」,否則失敗會更容易? –
我有點用我描述的單例解決方案。 ear2單身啓動bean調用ear1(重要)項目,並在runmode不正確時引發RuntimeException,但這不會將部署標記爲失敗。由於該項目未被部署,所以其他bean(例如計劃的)被允許執行任務。我想找到一個解決方案,在啓動過程中檢查runmode,如果不正確,則失敗。 – Wouter
隊長顯然:使用runtime.exec()來調用shell命令? (不是那麼明顯,有一些用戶文件系統權利問題附加到這個問題) – Gimby