Jython WLST с использованием модуля потоковой обработки Python (Weblogic 10)

Окружающая обстановка

  • Веблогик 10
  • Солнце Ява
  • HP UX

Цель

Перезапустите все управляемые экземпляры со всеми кластерами в режиме последовательного перезапуска. Хотелось бы, чтобы разные кластеры перезагружались одновременно

Вопрос

Есть ли способ использовать модуль потоков Jython для одновременного выполнения нескольких действий WLST?

Попытка подхода

В одном скрипте у меня есть классы как для кластера, так и для экземпляра сервера. Кластер имеет список экземпляров сервера. В объекте кластера есть метод для циклического просмотра списка серверов и перезапуска их один за другим, если кластер исправен. Я попытался передать этот метод в поток следующим образом:

Thread(target=lambda: cluster.managedRestart()).start()

Но получаю ошибку TypeError: can't set arbitrary attribute in java instance: target

Идеи

Разбейте код управляемого перезапуска в отдельный файл и используйте execfile() для его вызова из потока.

У кого-нибудь еще есть идеи/предложения/опыт?


person wmarbut    schedule 25.02.2012    source источник
comment
Привет, wmarbut, ты решил свое решение для потоковой передачи? Если да, то как вы это исправили. Ваше решение может спасти мое изобретение велосипеда. Пожалуйста, поделитесь своими знаниями об этом...   -  person PavanDevarakonda    schedule 25.09.2015
comment
@PavanWLA Прошло несколько лет, но я считаю, что у меня никогда не было решения, которым я был бы доволен. Jython API, безусловно, не является потокобезопасным. Я забыл проблему, которая у меня была с ответом ниже. Извините, что не могу больше помочь   -  person wmarbut    schedule 25.09.2015


Ответы (1)


Я не думаю, что потоки должны использоваться явно для параллельного запуска управляемых серверов. Следующий код запустит все кластеры параллельно. block='false' будет не блокировать элемент управления в начале команда, что означает, что будет выдана команда запуска, и немедленно будет выполнена следующая команда, которая запускает другой кластер. Поэтому все кластеры можно запускать параллельно. То же самое касается команды shutdown .

connect(username='weblogic', password='weblogic1', url='t3://localhost:7001')
clusterList = ls('/Clusters', returnMap='true')
for cluster in clusterList :
    start(cluster, 'Cluster', block='false')
person Mani    schedule 20.10.2012