Передайте vijava ServiceInstance через rabbitmq или другую очередь задач

Я пытаюсь создать систему, в которой мастер создаст соединение с vcenter и передаст объект serviceinstance группе сборщиков производительности, которые затем смогут выполнить свою работу и выйти. Мой вопрос заключается в том, что было бы лучшим способом поделиться объектом SI? Я думал об использовании очереди сообщений для этой цели, но я не очень заинтересован в сериализации объектов. Есть ли другой, более эффективный способ?

1 ответ

Решение

Эта SI будет работать только на том vCenter, который создал SI. Если это не будет проблемой для вас, тогда просто поместите идентификатор сеанса в шину, чтобы ваши работники могли забрать его, и тогда они смогут создать новый SI, используя идентификатор сеанса.

При первом подключении:

ServiceInstance serviceInstance = new ServiceInstance(new URL("https://vcenter/sdk"),user, passwd, true);
String sessionId = serviceInstance.getServerConnection().getSessionStr();

Затем поместите этот сеанс в автобус. Пусть ваш работник поднимет его и сделает:

ServiceInstance si2 = new ServiceInstance(new URL("https://vcenter/sdk"), sessionId, true);

Время ожидания по умолчанию для этого сеанса составляет 30 минут IIRC.

Также немного подключив себя, я бы предложил перейти от виджавы к явиджаве. Я поддерживаю эту форк, которая добавила множество отличных функций, и я даже в настоящее время добавляю поддержку 6.0. https://github.com/yavijava/yavijava

Другие вопросы по тегам