4

环境

  • 网络逻辑 10
  • 孙Java
  • 惠普用户体验

目标

以滚动重启方式重启所有集群的所有托管实例。希望不同的集群同时重启

问题

有没有办法使用 Jython 的线程模块同时执行多个 WLST 操作?

尝试的方法

在一个脚本中,我有集群和服务器实例的类。一个集群有一个服务器实例列表。集群对象上有一个方法可以循环遍历其服务器列表,如果集群健康,则一个一个地重新启动它们。我试过将此方法传递给这样的线程:

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

但我收到一个错误 TypeError: can't set arbitrary attribute in java instance: target

想法

将托管重启代码分解为一个单独的文件,并用于execfile()从线程内调用它

还有其他人有什么想法/建议/经验吗?

4

1 回答 1

4

我不认为线程将显式用于并行启动托管服务器。以下代码将并行启动所有集群。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')
于 2012-10-20T03:59:51.950 回答