DUOLABS AI 기능 탐구 25: 반복 워크플로를 정해진 시간에 실행하는 예약·스케줄

DUOLABS AI 기능 탐구 스물다섯 번째 글은 워크플로를 일정에 맞춰 실행하고 다음 실행과 최근 상태를 관리하는 예약·스케줄 기능입니다.

매일 아침 보고서를 만들거나 일정 간격으로 새 문의를 분류하는 일은 사용자가 버튼을 누르지 않아도 시작돼야 합니다. 하지만 정기 실행은 사람이 보고 있을 때만 작동하는 기능보다 실패와 중복에 더 신중해야 합니다.

기능 직접 보기: DUOLABS AI 예약·스케줄 실행

공개 데모에서는 “지금 실행”으로 가상 입력을 시험할 수 있습니다. 자동 실행은 보호된 서버 경로에서만 동작하며, 실제 고객 시스템이나 외부 발송과 연결되지 않습니다.

워크플로와 실행 주기를 연결합니다

스케줄에는 이름, 실행할 워크플로, 주기, 시간대와 기본 입력을 저장합니다. 화면은 다음 실행 시각, 최근 실행 시각과 성공·실패 상태를 보여줍니다.

현재 제공하는 주기는 15분마다, 매시간, 매일 오전 9시와 평일 오전 9시입니다. 시간 계산은 Asia/Seoul 기준으로 처리해 서버가 다른 시간대에서 실행돼도 업무 시각이 달라지지 않도록 합니다.

“언제 실행할까”보다 “다시 실행해도 안전한가”가 중요합니다

스케줄러는 네트워크 지연이나 서버 재시작 때문에 같은 작업을 다시 요청할 수 있습니다. 같은 실행이 두 번 일어나도 결과가 중복되지 않도록 멱등성을 설계해야 합니다.

예를 들어 보고서 생성은 같은 날짜의 결과를 갱신할 수 있지만, 고객 메시지 발송이나 결제 처리는 중복 실행이 사고로 이어집니다. 업무 날짜와 대상 ID로 실행 키를 만들고 이미 처리한 작업인지 확인해야 합니다.

실패와 지연을 운영 상태로 남깁니다

정기 작업이 실패했는데 다음 날까지 아무도 모르면 자동화의 의미가 없습니다. 스케줄 실행은 공통 실행 트레이스와 최근 상태를 남기고, 실패나 장시간 지연은 알림·SLA 규칙으로 연결하는 것이 좋습니다.

재시도 정책은 오류 종류에 따라 달라야 합니다.

일시적인 네트워크 오류: 짧은 간격으로 제한 재시도

호출 한도 초과: 공급자의 초기화 시각 이후 재시도

잘못된 입력이나 권한: 자동 재시도 중단 후 사람 확인

부분 성공: 실패 항목만 선별 재처리

무한 재시도는 비용 증가와 중복 행동을 만들 수 있으므로 횟수와 총 대기 시간을 제한해야 합니다.

시간대와 휴일 정책을 명시합니다

“매일 오전 9시”는 시간대가 빠지면 불완전한 요구사항입니다. 서머타임이 있는 국가, 지역별 지사와 공휴일을 다루려면 스케줄마다 시간대와 업무 달력을 저장해야 합니다.

또한 실행 시간이 긴 작업은 다음 주기와 겹칠 수 있습니다. 이전 실행이 끝나기 전 새 실행을 막을지, 병렬 처리할지, 대기열에 넣을지 정책이 필요합니다.

공개 데모에서 확인할 점

예약·스케줄 실행에서 활성 워크플로와 실행 주기를 선택하고 다음 실행 시각을 확인해 보세요. “지금 실행”을 사용하면 예약된 입력이 워크플로와 실행 트레이스로 이어지는 과정을 볼 수 있습니다.

실서비스에서는 보호된 실행 주체, 멱등 키, 재시도, 동시 실행 잠금, 휴일 정책과 알림을 함께 설계해야 스케줄이 믿을 수 있는 운영 자동화가 됩니다.