수정본

This commit is contained in:
2026-02-22 17:23:20 +09:00
parent b147498c31
commit 32e2263f0a
109 changed files with 13979 additions and 4580 deletions

63
setup-cron.sh Executable file
View File

@@ -0,0 +1,63 @@
#!/bin/bash
# 배치 분석 자동 실행을 위한 cron 설정 (Docker 컨테이너 내부 실행)
# 매일 아침 8시 50분에 실행 (장 시작 전 분석)
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
LOG_DIR="$SCRIPT_DIR/logs"
CONTAINER="autostock-backend"
DOCKER_BIN="$(command -v docker)"
# 로그 디렉토리 생성
mkdir -p "$LOG_DIR"
if [ -z "$DOCKER_BIN" ]; then
echo "❌ 오류: docker 명령어를 찾을 수 없습니다."
exit 1
fi
# cron 작업 추가 (기존 작업 중복 방지)
TOKEN_JOB="0 6 * * 1-5 $DOCKER_BIN exec $CONTAINER python /app/prefetch_token.py >> $LOG_DIR/token_prefetch.log 2>&1"
DAILY_JOB="50 8 * * 1-5 $DOCKER_BIN exec $CONTAINER python /app/batch_daily_analysis.py >> $LOG_DIR/batch_analysis.log 2>&1"
INTRADAY_JOB="*/10 9-15 * * 1-5 $DOCKER_BIN exec $CONTAINER python /app/batch_intraday_analysis.py >> $LOG_DIR/batch_intraday.log 2>&1"
ADDED=0
# 토큰 선제 발급 (06:00)
(crontab -l 2>/dev/null | grep -F "prefetch_token.py") || {
(crontab -l 2>/dev/null; echo "$TOKEN_JOB") | crontab -
echo "✅ Token prefetch cron added (06:00 평일)"
ADDED=1
}
# 아침 전체 배치
(crontab -l 2>/dev/null | grep -F "batch_daily_analysis.py") || {
(crontab -l 2>/dev/null; echo "$DAILY_JOB") | crontab -
echo "✅ Daily batch cron added (08:50 평일)"
ADDED=1
}
# 장중 미니배치 — 항상 최신 설정(*/10)으로 교체
crontab -l 2>/dev/null | grep -v "batch_intraday_analysis.py" | crontab -
(crontab -l 2>/dev/null; echo "$INTRADAY_JOB") | crontab -
echo "✅ Intraday batch cron set (*/10 9-15 평일, 분석종목 관리)"
ADDED=1
if [ $ADDED -eq 0 ]; then
echo "✅ All cron jobs already exist"
exit 0
fi
echo ""
echo "📅 스케줄:"
echo " - 토큰 선제발급: 06:00 평일"
echo " - 아침 배치: 08:50 평일 (500종목 전체 분석)"
echo " - 장중 미니배치: 09:00~15:30 매 10분 평일 (분석종목 재분석·진입·제거)"
echo "📝 로그:"
echo " - $LOG_DIR/token_prefetch.log"
echo " - $LOG_DIR/batch_analysis.log"
echo " - $LOG_DIR/batch_intraday.log"
echo "🐳 실행 컨테이너: $CONTAINER"
echo ""
echo "확인: crontab -l"
echo "수정: crontab -e"