Oban.py
Oban.py는 엘릭서의 Oban을 파이썬으로 포팅한 데이터베이스 기반 잡 처리 프레임워크
About
- Oban.py는 엘릭서의 잡 처리 프레임워크 Oban을 PostgreSQL 기반으로 파이썬에 이식한 버전으로, 데이터베이스만으로 잡을 삽입하고 처리할 수 있음
- 잡은 데이터베이스 트랜잭션 내에서 생성·롤백되며, 큐 관리·결과 저장·크론 스케줄링 등 다양한 기능을 지원
- 오픈소스 버전은 단일 스레드 asyncio 실행과 개별 삽입·확인 처리 등 제약이 있으나, Pro 버전은 병렬 처리·워크플로·스마트 동시성을 제공
- 내부 동작은 Insert → Notify → Fetch → Execute → Ack의 다섯 단계로 구성되며, PostgreSQL의 FOR UPDATE SKIP LOCKED를 활용해 동시성 충돌을 방지
- 리더 선출, 고아 잡 복구, 백오프 재시도 등도 데이터베이스 기반으로 수행되어 외부 브로커 없이 안정적 분산 처리를 가능하게 함