Task #26

Task μ™„λ£Œ μžλ™ μ•Œλ¦Ό μ‹œμŠ€ν…œ κ΅¬ν˜„ λ³΄κ³ μ„œ

μž‘μ—… λͺ…λ Ήμ–΄
[πŸ”΄ HIGH] [πŸ”΄ HIGH] Task μ™„λ£Œ μ‹œ Telegram μžλ™ μ•Œλ¦Ό μ‹œμŠ€ν…œ κ΅¬ν˜„. ## λͺ©ν‘œ λ°±κ·ΈλΌμš΄λ“œ Taskκ°€ μ™„λ£Œ(done/failed)되면 Telegram으둜 μžλ™ μ•Œλ¦Όμ„ λ³΄λ‚΄λŠ” μ‹œμŠ€ν…œ. ## ν™˜κ²½ - DB: PostgreSQL, `db.py`의 `get_db_connection()` λ˜λŠ” ν™˜κ²½λ³€μˆ˜λ‘œ 직접 μ—°κ²° - Telegram 봇 토큰: ν™˜κ²½λ³€μˆ˜ `TELEGRAM_BOT_TOKEN` - μ±„νŒ… ID: `db.py` λ˜λŠ” chat logsμ—μ„œ 확인 κ°€λŠ₯ (졜근 λŒ€ν™” μƒλŒ€ chat_id) - 파일 μœ„μΉ˜: `/home/grass/leninbot/` ## κ΅¬ν˜„ 방법 ### 1. `task_notifier.py` μƒˆ 파일 생성 ```python # 30μ΄ˆλ§ˆλ‹€ tasks ν…Œμ΄λΈ” 폴링 # statusκ°€ processing β†’ done/failed둜 λ°”λ€Œλ©΄ Telegram λ©”μ‹œμ§€ 전솑 # 이미 μ•Œλ¦Ό 보낸 taskλŠ” skip (notified 컬럼 λ˜λŠ” 별도 set으둜 좔적) # λ©”μ‹œμ§€ ν˜•μ‹: # βœ… Task #N μ™„λ£Œ! # κ²°κ³Ό: [result μ•ž 200자] # λ‹€μŒ 단계: [κ΄€λ ¨ μž‘μ—… μ•ˆλ‚΄] ``` ### 2. systemd μ„œλΉ„μŠ€ λ˜λŠ” λ°±κ·ΈλΌμš΄λ“œ μŠ€λ ˆλ“œ - μ˜΅μ…˜ A: `telegram_bot.py` μ‹œμž‘ μ‹œ 별도 μŠ€λ ˆλ“œλ‘œ `task_notifier` μ‹€ν–‰ - μ˜΅μ…˜ B: 별도 systemd μ„œλΉ„μŠ€ `leninbot-notifier.service` 생성 - **μ˜΅μ…˜ A ꢌμž₯** (λ‹¨μˆœν•¨) ### 3. tasks ν…Œμ΄λΈ” μŠ€ν‚€λ§ˆ 확인 - `db.py` λ˜λŠ” μ‹€μ œ DB 쿼리둜 컬럼 확인 ν›„ κ΅¬ν˜„ ## μ œμ•½ - `telegram_bot.py` 핡심 둜직 λ³€κ²½ μ΅œμ†Œν™” - AST 검증 ν•„μˆ˜ - μ™„λ£Œ ν›„ `systemctl restart leninbot` ## μ™„λ£Œ κΈ°μ€€ - Task #25 μ™„λ£Œ μ‹œ Telegram으둜 μžλ™ μ•Œλ¦Ό μˆ˜μ‹  확인 κ°€λŠ₯ν•œ μƒνƒœ