Active Job Continuations는 Rails 8.1의 ActiveJob::Continuable 모듈을 통해 장시간 실행 작업을 step으로 분할하고, 각 단계 완료 후 진행 상황을 기록합니다. 작업 중단 시, Rails는 완료된 단계를 건너뛰고 첫 미완료 단계부터 자동 재개하여 회복탄력성을 높입니다. 이는 파이프라인에 내장된 체크포인트와 같습니다.
AI 파이프라인에 중요한 이유
AI 오케스트레이션은 LLM 호출 같은 고비용, 데이터 임포트 같은 장시간 실행, 배포 시 워커 재시작으로 인한 운영상 취약한 단계를 포함합니다. Active Job Continuations는 중단 시 고비용 작업을 재수행할 필요 없이 효율적으로 재개하여 시간, 비용 절감 및 예측 가능성을 높입니다.
구현 및 고려사항
ApplicationJob에서 ActiveJob::Continuable을 포함하고, perform 메서드 내 step 블록으로 단계를 정의합니다. 핵심 고려사항은 다음과 같습니다: 각 step 코드는 여러 번 실행되어도 안전한 멱등성(Idempotency)을 갖춰야 합니다. step 블록 외부는 작업 재개 시마다 실행되므로, 비용이 많이 드는 작업은 step 내부에 두어야 합니다. 또한, 단계 내에서 세밀한 진행 추적이 필요할 때는 step.cursor를 활용하여 특정 지점부터 재개할 수 있습니다. 이 기능은 Rails AI 워크플로우를 견고하고 효율적으로 만듭니다.