Browse Source

modify:修改event_key

zhusc 3 months ago
parent
commit
e8c6ace8bb
3 changed files with 118 additions and 9 deletions
  1. 0 1
      coze_bot_api_test.py
  2. 59 4
      start.sh
  3. 59 4
      start_znjd.sh

+ 0 - 1
coze_bot_api_test.py

@@ -250,7 +250,6 @@ def consumer(
         # 如果用户之前已经选择了bot_id,则使用之前的bot_id
         bot_id = user_bot_id_mapping.get(username, "7456977536891846697")  # 默认bot_id
 
-
     qiwei_post(username, "我正在思考,请稍等...", agentid)
     logger.info("我正在思考,请稍等...")
     logger.info(f"consumer 请求:{user_query}")

+ 59 - 4
start.sh

@@ -5,6 +5,14 @@ echo "port: $port"
 
 PATH_APP=$(pwd)
 
+function get_port() {
+  APP_PORT=$port
+}
+
+function get_ok() {
+  APP_OK=$(curl --silent -m 3 -k https://127.0.0.1:$APP_PORT/ok)
+}
+
 function get_pid() {
   APP_PID=$(ps -ef | grep "python $PATH_APP/coze_bot_api.py $port" | grep -v grep | awk '{print $2}')
 }
@@ -21,12 +29,59 @@ function kill_app() {
 function start_app() {
   echo $(date +%F%n%T) "开始启动coze_bot_api..."
   PYTHONIOENCODING=utf-8 nohup python $PATH_APP/coze_bot_api.py $port > $PATH_APP/nohup.out 2>&1 &
-  sleep 3
+  sleep 5
+  ((RETRY_COUNT++))
   echo $(tail -50 $PATH_APP/nohup.out)
   echo "启动完成..."
   echo "日志请查看 $PATH_APP/nohup.out"
 }
 
-get_pid
-kill_app
-start_app
+function loop_detect_ok() {
+  # 重试计数,防止pod一直显示成功
+  RETRY_COUNT=0
+  get_pid
+  kill_app
+  start_app
+  while [ 1 ]; do
+    if [ $RETRY_COUNT -gt 21 ]; then
+      echo $(date +%F%n%T) "超出重启app次数限制,退出系统..."
+      echo $(date +%F%n%T) "超出重启app次数限制,退出系统..." >> $PATH_APP/event.log
+      exit
+    fi
+    # 进程不存在
+    get_pid
+    if [ -z $APP_PID ]; then
+      echo $(date +%F%n%T) "进程不存在,第 $RETRY_COUNT 次重启app"
+      echo $(date +%F%n%T) "进程不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
+      kill_app
+      start_app
+      continue
+    fi
+    # 端口不存在
+    get_port
+    if [ -z $APP_PORT ]; then
+      echo $(date +%F%n%T) "端口不存在,第 $RETRY_COUNT 次重启app"
+      echo $(date +%F%n%T) "端口不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
+      kill_app
+      start_app
+      continue
+    fi
+    # 心跳不存在
+    get_ok
+    if [ "$APP_OK"x != '"ok"'x ]; then
+      echo $(date +%F%n%T) "心跳不存在,第 $RETRY_COUNT 次重启app"
+      echo $(date +%F%n%T) "心跳不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
+      kill_app
+      start_app
+      continue
+    fi
+    RETRY_COUNT=1
+    #echo "" > $PATH_APP/nohup.out
+    sleep 5
+  done
+}
+
+#get_pid
+#kill_app
+#start_app
+loop_detect_ok &

+ 59 - 4
start_znjd.sh

@@ -5,6 +5,14 @@ echo "port: $port"
 
 PATH_APP=$(pwd)
 
+function get_port() {
+  APP_PORT=$port
+}
+
+function get_ok() {
+  APP_OK=$(curl --silent -m 3 -k https://127.0.0.1:$APP_PORT/ok)
+}
+
 function get_pid() {
   APP_PID=$(ps -ef | grep "python $PATH_APP/coze_znjd_api.py $port" | grep -v grep | awk '{print $2}')
 }
@@ -21,12 +29,59 @@ function kill_app() {
 function start_app() {
   echo $(date +%F%n%T) "开始启动coze_znjd_api..."
   PYTHONIOENCODING=utf-8 nohup python $PATH_APP/coze_znjd_api.py $port > $PATH_APP/nohup_znjd.out 2>&1 &
-  sleep 3
+  sleep 5
+  ((RETRY_COUNT++))
   echo $(tail -50 $PATH_APP/nohup_znjd.out)
   echo "启动完成..."
   echo "日志请查看 $PATH_APP/nohup_znjd.out"
 }
 
-get_pid
-kill_app
-start_app
+function loop_detect_ok() {
+  # 重试计数,防止pod一直显示成功
+  RETRY_COUNT=0
+  get_pid
+  kill_app
+  start_app
+  while [ 1 ]; do
+    if [ $RETRY_COUNT -gt 21 ]; then
+      echo $(date +%F%n%T) "超出重启app次数限制,退出系统..."
+      echo $(date +%F%n%T) "超出重启app次数限制,退出系统..." >> $PATH_APP/event.log
+      exit
+    fi
+    # 进程不存在
+    get_pid
+    if [ -z $APP_PID ]; then
+      echo $(date +%F%n%T) "进程不存在,第 $RETRY_COUNT 次重启app"
+      echo $(date +%F%n%T) "进程不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
+      kill_app
+      start_app
+      continue
+    fi
+    # 端口不存在
+    get_port
+    if [ -z $APP_PORT ]; then
+      echo $(date +%F%n%T) "端口不存在,第 $RETRY_COUNT 次重启app"
+      echo $(date +%F%n%T) "端口不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
+      kill_app
+      start_app
+      continue
+    fi
+    # 心跳不存在
+    get_ok
+    if [ "$APP_OK"x != '"ok"'x ]; then
+      echo $(date +%F%n%T) "心跳不存在,第 $RETRY_COUNT 次重启app"
+      echo $(date +%F%n%T) "心跳不存在,第 $RETRY_COUNT 次重启app" >> $PATH_APP/event.log
+      kill_app
+      start_app
+      continue
+    fi
+    RETRY_COUNT=1
+    #echo "" > $PATH_APP/nohup.out
+    sleep 5
+  done
+}
+
+#get_pid
+#kill_app
+#start_app
+loop_detect_ok &