From def4e9eeb8864cffab6a6c211e9e1f9a0454be83 Mon Sep 17 00:00:00 2001 From: projectdx Date: Mon, 26 Jan 2026 16:47:23 +0900 Subject: [PATCH] =?UTF-8?q?feat:=20=EC=9C=A0=ED=8A=9C=EB=B8=8C=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EC=A0=95=EB=A0=AC=20=EA=B8=B0=EB=8A=A5=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80=20=EB=B0=8F=20=EC=9D=B8=ED=94=BC=EB=8B=88=ED=8B=B0=20?= =?UTF-8?q?=EC=8A=A4=ED=81=AC=EB=A1=A4=20=EA=B0=9C=EC=84=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 검색 정렬 옵션 추가 (최신순, 조회수순, 관련성순) - 기본 정렬을 최신순으로 변경 - 인피니티 스크롤 최적화 (첫 20개 빠르게 로드, 스크롤 시 추가) - extract_flat 파라미터 추가로 검색 성능 개선 - 서버 캐시로 중복 요청 방지 - UI 개선: 검색 결과 종료 메시지 추가 - 버전 업데이트: 0.1.2 → 0.2.0 --- .DS_Store | Bin 10244 -> 10244 bytes config.yaml | 2 +- flower.sh | 12 +++++++ restart_all.sh | 83 +++++++++++++++++++++++++++++++++++++++++++++++++ 4 files changed, 96 insertions(+), 1 deletion(-) create mode 100755 flower.sh create mode 100755 restart_all.sh diff --git a/.DS_Store b/.DS_Store index decf492641987a1afdbc2574b4ab811c7984208e..a1e2bce041b2524fefd4520238f63f94e6375726 100644 GIT binary patch delta 674 zcmdVWOKVe66o%ovTdU{b4(^1cO-_==ifyq?YeH3;R_dT$5Q7Fyj5pM_$sm}f+CV`O z>!k=HqIRPL(M+vqp-?P>cLyTQggSBHNIMemI1~>j{t1WcTWheMZz4UBo(X#l>9(?a za(nmb?!dG^+|=B*W^J;se`_i|zg&5|(kJV6JQ&blJaMFsdgD7~tF_ux14gD&JXxq6 z#bl?cDrV+rv7C1jDNU0Xv z71efq8>O7AZ?Cbp mxVsK+nmHcwh{rtP6|Z@t-Hlzds^Pm^C&Cy0v%j@!`1Kd%Eujej delta 1041 zcmeIwTS(JU90%~<_pibJ9Gqw4zl(FaE~Kb47hcGUB~Gc_azm$9pf>X#jnN3c3+U|F#GMd+V|DaDM!L=fHu__Y4Py z16S+@JIk@PwRfytx4xV6ZHn9?M?&#%LT(7fWkqea_LmzIVR^eh77zDDm3DbR(W)pW z^%ncQg{2i$wQkQ!Um%ss4Mrw0v+ByTsxt-`m|9_U`B|~8MC2h|PzmplGnbrfk;oM> zxFsCzO;2o#S*4Emifxflj~vO2YSRjoD zq)hp}gLG6tE~=*{>Y^A8(qTGIXXysrq%nF(PiTT(&@_FZkMxN?(|2Se2f5%dz=nJj zpb%xKLN#ho4=;RZh95z6qO%Jd5W*((A%+1c7{p%e!+spVF`U3joW=;wA&JYlifed) z$4KEhCh!VVc#SuBk1zO&Zvqn}!6cZ45}{P66qXB(LX*&{&X;^zB#u?9o4md?e~Cnz zEfUpX3Tx^IP34?9_#6#Xm$K&B@{5X@I&La-GM=RcA*N^5P6y-o)zmI!jAv_+WX{|x z7*n~q>|Z!PqGvQoQ}kAIo/dev/null +lsof -ti :9099 | xargs kill -9 2>/dev/null +echo " ✓ FlaskFarm 프로세스 종료됨" + +# Celery 워커 종료 +pkill -9 -f "celery.*worker" 2>/dev/null +pkill -9 -f "celery -A flaskfarm" 2>/dev/null +echo " ✓ Celery 워커 종료됨" + +# 잠시 대기 (포트 해제 등) +sleep 2 + +# --------------------------- +# 2. pyenv 초기화 +# --------------------------- +echo -e "\n${GREEN}[2/4] Python 환경 초기화 중...${NC}" +export PYENV_ROOT="$HOME/.pyenv" +export PATH="$PYENV_ROOT/bin:$PATH" +if command -v pyenv &> /dev/null; then + eval "$(pyenv init -)" + eval "$(pyenv virtualenv-init -)" 2>/dev/null +fi +export GEVENT_NOWAITPID=1 +export PYTHONWARNINGS="ignore::DeprecationWarning" +echo " ✓ Python 환경 준비됨" + +# --------------------------- +# 3. Celery 워커 시작 (백그라운드) +# --------------------------- +echo -e "\n${GREEN}[3/4] Celery 워커 시작 중 (백그라운드)...${NC}" + +# 로그 파일 경로 +CELERY_LOG_DIR="data/log" +mkdir -p "$CELERY_LOG_DIR" +CELERY_LOG_FILE="$CELERY_LOG_DIR/celery_worker.log" + +# Celery 워커 시작 +nohup celery -A main.celery worker \ + --loglevel=info \ + --pool=gevent \ + --concurrency=4 \ + --config_filepath=data/config_mac.yaml \ + --running_type=local \ + > "$CELERY_LOG_FILE" 2>&1 & + +CELERY_PID=$! +echo " ✓ Celery 워커 시작됨 (PID: $CELERY_PID)" +echo " ✓ 로그: $CELERY_LOG_FILE" + +# Celery가 시작될 시간 확보 +sleep 2 + +# --------------------------- +# 4. FlaskFarm 시작 (포어그라운드) +# --------------------------- +echo -e "\n${GREEN}[4/4] FlaskFarm 시작 중...${NC}" +echo -e "${YELLOW}========================================${NC}" +echo "" + +# FlaskFarm 시작 (gommi_mac.sh 호출) +./gommi_mac.sh