Ich verfüge über eine große Anzahl von Diensten und einen Kernsatz von Diensten, die zuerst geladen werden müssen, damit sie verfügbar sind, wenn die anderen Dienste geladen werden.
Verfügt Wildfly bei Bereitstellungen über eine bestimmte Reihenfolge (z. B. alphabetisch, basierend auf dem Dateinamen)? Oder gibt es eine Möglichkeit, dies einzurichten?
Wir haben versucht, Code hinzuzufügen, um Verbindungen erneut zu versuchen, wenn die anderen Dienste noch nicht bereit sind, aber daran waren Threads beteiligt, und manchmal wurden die Threads nicht richtig beendet, wenn Dinge nicht bereitgestellt wurden.
Einige Dinge, die bei mir nicht funktionieren:
- Es ist möglich zuSteuern Sie die Reihenfolge der Bereitstellung von Modulen (EJBs, WARs usw.) innerhalb einer .EAR-Datei., aber ich bin daran interessiert, die Reihenfolge der .ear-Bereitstellungen zu steuern.
- Eine .ear kann als Abhängigkeit einer anderen .ear gesetzt werden, aber unsere Dienste werden in verschiedenen Regionen eingesetzt. Wir haben serviceA-regionA-1.0.0.ear, serviceA-regionB-1.0.0.ear usw. Es wäre sehr mühsam, alle diese Ear-Namen angeben zu müssen.
Antwort1
Wildfly (seit AS7) versucht, parallele Bereitstellungen durchzuführen, um den Prozess zu beschleunigen. Wenn Sie eine sequentielle Bereitstellung durchführen möchten, können Sie Abhängigkeiten jeder Bereitstellung von einer anderen bereitstellen (wie die Links, die Sie in der Frage angegeben haben).
Alternativ können Sie Ihren Bereitstellungszeitplan über die Management-CLI ordnen. Mithilfe der Batch-Funktionen stellen Sie sicher, dass Ihre Bereitstellungen in der im Skript angegebenen Reihenfolge erfolgen. Wenn mindestens einer der Befehle oder Vorgänge fehlschlägt, werden alle anderen erfolgreich ausgeführten Befehle und Vorgänge im Batch zurückgesetzt.
Siehe auch: