39 lines
967 B
Bash
39 lines
967 B
Bash
#!/usr/bin/env bash
|
|
|
|
ABSPATH=$(readlink -f $0)
|
|
ABSDIR=$(dirname $ABSPATH)
|
|
source ${ABSDIR}/profile.sh
|
|
source ${ABSDIR}/switch.sh
|
|
|
|
IDLE_PORT=$(find_idle_port)
|
|
|
|
echo "> Health Check Start!"
|
|
echo "> IDLE_PORT: $IDLE_PORT"
|
|
echo "> curl -s http://localhost:$IDLE_PORT/profile "
|
|
sleep 10
|
|
|
|
for RETRY_COUNT in {1..10}
|
|
do
|
|
RESPONSE=$(curl -s http://localhost:${IDLE_PORT}/profile)
|
|
UP_COUNT=$(echo ${RESPONSE} | grep 'real' | wc -l)
|
|
|
|
if [ ${UP_COUNT} -ge 1 ]
|
|
then # UP_COUNT >= 1 ("real" 문자열이 있는지 검증)
|
|
echo "> Health Check 성공"
|
|
switch_proxy
|
|
break
|
|
else
|
|
echo "> Health Check의 응답을 알 수 없거나 혹은 실행 상태가 아닙니다."
|
|
echo "> Health Check: ${RESPONSE}"
|
|
fi
|
|
|
|
if [ ${RETRY_COUNT} -eq 10 ]
|
|
then
|
|
echo "> Health Check 실패. "
|
|
echo "> 엔진엑스에 연결하지 않고 배포를 종료합니다."
|
|
exit 1
|
|
fi
|
|
|
|
echo "> Health Check 연결 실패. 재시도...."
|
|
sleep 10
|
|
done |