- @PostConstruct
- private void init() {
- try {
- msbRegister.register2Msb(createMicroServiceInfo());
- } catch (CorrelationException e) {
- logger.error(e.getMessage(), e);
+ @Override
+ public void run(ApplicationArguments args) {
+ Executors.newSingleThreadExecutor().execute(() -> {
+ waitUntilReady();
+ try {
+ msbRegister.register2Msb(createMicroServiceInfo());
+ } catch (CorrelationException e) {
+ logger.error(e.getMessage(), e);
+ }
+ });
+ }
+
+ private void waitUntilReady() {
+ int count = 1;
+ while (!readyForMsbReg) {
+ if (count > 20) {
+ break;
+ }
+ int interval = 5 * count++;
+ logger.info("Not ready for MSB registration. Try again after {} seconds...", interval);
+ try {
+ TimeUnit.SECONDS.sleep(interval);
+ } catch (InterruptedException e) {
+ logger.info(e.getMessage(), e);
+ }