수정본
This commit is contained in:
63
setup-cron.sh
Executable file
63
setup-cron.sh
Executable 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"
|
||||
Reference in New Issue
Block a user