diff --git a/functions.php b/functions.php index 84e8759..b7e9a94 100644 --- a/functions.php +++ b/functions.php @@ -12,6 +12,28 @@ function ping_redis() { else return false; } +function check_install() { + + global $REDIS_HOST; + + $redis = new Redis(); + $redis->connect($REDIS_HOST); + if ($redis->ping()) { + $members = $redis->sMembers("web_in"); // redis-cli -h redis-server smembers $group + print_r($members); + + $in_progress=0; + foreach ($members as $member) { + echo substr($member,0,7); + if (substr($member,0,7)=="install") { + $in_progress=$member; + break; + } + } + return $in_progress; + } +} + function check_redis($group="scheduler_in", $key="") { global $REDIS_HOST; diff --git a/install.php b/install.php index c25502e..9991796 100644 --- a/install.php +++ b/install.php @@ -31,9 +31,15 @@ $json = json_encode($_POST, JSON_UNESCAPED_SLASHES|JSON_PRETTY_PRINT); // TODO preview about selected options? // TODO - new install in progress? INSTALL_STATUS=0 -$key = "install:".date("YmdHis"); -redis_set($key,$json); -//$key = "install:20240816101849"; // DEBUG +if ($key=check_install()) { + $header_text="Install has already started.
Please wait and do not start a new one..."; +} +else { + $header_text="Installing in progress... Please wait..."; + $key = "install:".date("YmdHis"); + redis_set($key,$json); + //$key = "install:20240816101849"; // DEBUG +} /* put_install_envs(); @@ -62,7 +68,7 @@ echo "
".$output."
";
-

Installing in progress... Please wait...

+

diff --git a/scan.php b/scan.php index b79f973..6eb8456 100644 --- a/scan.php +++ b/scan.php @@ -38,7 +38,7 @@ switch ($_GET["op"]) { foreach ($arr as $key=>$data) { //echo $key."-".$_GET["key"]; if ($key==$_GET["key"]) { // if install key moved to web_out - if ($data["INSTALL_STATUS"]==1) { + if ($data["INSTALL_STATUS"]>0) { redis_remove("$key"); echo "INSTALLED"; }