无限循环等待变量值改变,并在 mongo shell 中每 30 秒检查一次

问题描述

编写一个 bash 脚本来连接到 mongo-shell。我有 rs.status() 的以下输出。我必须等待其中一位成员将 stateStr 的值更改为 Secondary。在下面的输出中,您可以看到,现在它显示 Not active。我想编写一个无限循环来遍历所有成员,并每 30 秒检查一次 stateStr,直到出现 Secondary

"members" : [
  { "stateStr" : "Not active" },{ "stateStr" : "PRIMARY" },{ "stateStr" : "ARBITER" }
],

这是我目前所拥有的:

mongo --host ${other_host} ${ssl_mode} <<EOF
    while (true){
            for (i = 0; i <= 2; i++){
                    if (rs.status().members[i].stateStr == "SECONDARY") {
                            break;
                    }
            }
    }
    rs.status();
EOF

然而,这并没有打破无限循环。我想每 30 秒检查一次。我该怎么做?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)