Skip to content

fix: 게시판 크롤링 오류 시 이후 게시판 처리가 통째로 중단되는 문제 #196

Description

@insik03

Description

article.py의 메인 루프가 게시판별 처리를 감싸는 예외 처리 없이 순서대로 실행되고 있어, 한 게시판 처리 중 예외가 발생하면(SQL 오류, 파싱 실패, 네트워크 오류 등 원인 불문) 그 뒤 순서의 게시판은 이번 실행에서 아예 처리되지 않는다.

boards 리스트 순서가 [일반공지, 장학공지, 취업공지, 학사공지, 현장실습공지, 학생생활]이고 run.sh가 3개씩 두 세그먼트로 나눠 실행하므로, 세그먼트 1의 앞쪽 게시판에서 예외가 나면 취업공지(board_id=8)까지 영향을 받는다. #191(is_delete 오타)이 정확히 이 패턴으로 발생했던 사례이며, 같은 구조적 문제이므로 오타가 아닌 다른 원인으로도 동일한 증상이 재발할 수 있다.

Task List

  • 게시판별 처리를 개별 try/except로 격리해 한 게시판의 실패가 이후 게시판 처리를 막지 않도록 수정
  • 실패 시 원인과 스택트레이스를 로그로 남기고 다음 게시판으로 진행하도록 처리
  • Python 구문 검사 통과 확인 (실제 크롤링 실행과 실패 시나리오 재현은 하지 않음)

Remark

  • 이 이슈는 재발 방지(격리)만 다룬다. 취업공지에 신규 글이 들어오지 않는 문제 자체를 해결하지는 않는다.
  • 운영 DB 조회(KOIN_API_V2#2459 작업 중 확인) 결과, board_id=8은 created_at 최대값이 2024-10-26, 가장 최근 registered_at이 2024-10-15로 2024-10 이후 신규 글이 들어오지 않은 것으로 보인다. 반면 updated_at은 2026-08-04, 2026-08-05, 2026-09-23에 갱신된 흔적이 있어 배치가 아예 안 도는 것인지, 돌지만 새 글을 못 넣는 것인지는 이 조회만으로는 구분되지 않는다. 서버의 배치 로그(crawling/koreatech_article/logs/output1.log, 취업공지는 세그먼트 1)와 크롤링 대상 포털 목록 확인이 필요하다.
  • KOIN_API_V2에서 보고된 "2016년 글이 최상단에 노출" 증상은 크롤러의 삽입 오류가 아니라 목록이 id DESC로 정렬되는 문제였다(2016년 글 2건이 2024-10-26에 한꺼번에 적재되어 가장 큰 id를 가짐). 해당 수정은 KOIN_API_V2#2459에서 다룬다.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions