큐(Queue)

수현·2025년 2월 24일

강서여성RPA학습

목록 보기
33/39

Queue(큐)란?

Queue(큐)UiPath Orchestrator에서 데이터를 저장하고 관리하는 구조로, 대량의 데이터를 자동화 프로세스에서 효율적으로 처리할 수 있도록 도와줍니다.
특히 Dispatcher와 Performer 패턴에서 중요한 역할을 합니다.


1. Queue의 역할

대량 데이터 처리 최적화

  • 수천~수만 개의 데이터를 개별 항목으로 저장하고 처리 가능
  • 여러 로봇이 동시에 데이터를 처리할 수 있음 (병렬 처리 지원)

비동기 작업 수행

  • 데이터를 한 번에 저장하고 필요할 때마다 가져와서 실행 가능
  • 한 프로세스가 데이터를 수집하면, 다른 프로세스가 나중에 실행할 수도 있음

자동화 안정성 향상

  • 작업 실패 시 재시도(Retry) 설정 가능
  • 오류 발생 시 개별 항목만 재처리하면 되므로 전체 프로세스 영향을 줄임

작업 분배(Load Balancing) 지원

  • 여러 로봇이 하나의 큐를 공유하여 작업을 병렬로 실행 가능
  • 로봇 리소스를 효율적으로 활용 가능

2. Queue의 주요 개념

① Queue Item (큐 항목)

  • Queue에 저장되는 개별 데이터 항목
  • 예: 고객 주문 정보, 이메일 주소, 송장 데이터 등
  • 각 Queue Item은 상태(Status)를 가짐

② Transaction Item (트랜잭션 항목)

  • Queue에서 처리 중인 현재 작업 항목
  • Performer가 Queue에서 가져온 데이터를 의미
  • 한 번에 하나씩 가져와서 처리

③ Queue Item 상태(Status)

상태설명
NewQueue에 추가되었으나 아직 처리되지 않음
In Progress현재 로봇이 처리 중인 항목
Successful작업이 성공적으로 완료됨
Failed작업이 실패함 (재시도 가능)
Abandoned지정된 시간 내 처리되지 않아 만료됨
Deleted오케스트레이터에서 Item을 삭제한 경우
RetiredItem이 응용프로그램 예외로 인해 실패한 후 다시 시도된 경우

3. Queue의 활용 예시

📌 Dispatcher-Performer 구조

✅ 설명

  • Dispatcher : 데이터를 Queue에 추가(Enqueue)
  • Performer : Queue에서 데이터를 가져와(Dequeue)처리

✅ 주요 특징

  • 비동기 처리 : 데이터를 생산하는 로봇과 소비하는 로봇이 분리되어 동시에 작업 가능
  • 대규모 데이터 처리 : 대량의 데이터를 여러 Performer로봇이 병렬로 처리

✅ 사용 예시

  • 대량의 주문 데이터를 처리(Dispatcher가 주문 데이터를 Queue에 추가,Performer가 이를 하나씩 처리)
  • 웹에서 데이터를 크롤링한 후, 각 데이터를 Queueu에 저장하고 후속 작업을 Performer가 수행

📌 Dispatcher-Performer 이외의 Queue 이용 사례

대규모 프로젝트의 작업 분리

✅ 설명

  • 하나의 프로젝트를 여러 단계로 나누어 각 단계의 작업을 Queue에 추가

✅ 사용 예시

  • 첫 번째 단계에서 데이터를 수집하여 Queue에 추가, 두 번째 단계에서 데이터를 처리
  • 각 단계의 로봇 간 독립성 유지

분산된 데이터 처리

✅ 설명

  • Queue를 사용해 서로 다른 소스에서 들어온 데이터를 한 곳에서 통합 처리

✅ 사용 예시

  • API로 들어온 주문 데이터와 파일로 업로드된 주문 데이터를 하나의 Queue에 통합하여 처리
  • 서로 다른 형식의 데이터를 Queue를 통해 표준화

병렬 작업 분배

✅ 설명

  • 여러 로봇 간에 작업을 분산하여 병렬 처리

✅ 사용 예시

  • 여러 Performer로봇이 동일한 Queue를 참조하여 각자 다른 항목을 처리
  • 대량의 데이터 처리 속도를 개선

4. Queue 사용 방법 (UiPath 예제)

📌 ① Queue에 데이터 추가 (Dispatcher 역할)

  • Add Queue Item 액티비티 사용
  • Item Information에 큐에 저장할 데이터 입력
  • 큐에 "진행 중" 상태로 데이터가 저장된 모습

📌 ② Queue에서 데이터 가져와 실행 (Performer 역할)

  • Get Transaction Item 액티비티 사용
  • Get Queue Items는 조회, 분석하는 용도이다


QueueItem 데이터 유형에서 데이터 추출

  • SpecificContent로 문자열, 숫자(예: Int32), 날짜, 불리언 값을 추출할 수 있음.
  • SpecificContent는 Queue에 저장된 데이터를 전체적으로 Dictionary<string, object> 형태로 반환
  1. Key를 통해 Value를 가져올 수 있다. 즉, queueItem.SpecificContent("키 이름")으로 Value값 추출 가능
  2. 이 때 Value는 Object 유형이므로 필요한 데이터 유형으로 변환해야 함.
  3. 특정 키의 데이터가 없는 경우 NullReferenceException이 발생할 수 있으므로, 키가 존재하는지 확인하거나 값이 null인지 체크 권장

📌 ③ Queue Item 상태 변경하기

  • Get Queue Items 액티비티로 큐 조회하기
  • 홈페이지의 큐의 트랜잭션을 확인하면 "조회중"이라고 나온다
  • 이것을 Studio에서 끝까지 진행하여 "성공" 또는 "실패" 확인을 하여 입력을 해야한다
  • 조회한 큐를 Set Transaction Status 액티비티로 상태 변경하기
  • 성공하지 못할 경우 BusinessRuleException, SystemException과 같이 과제가 성공하지 못하는 경우->예외
  • 예외인 경우에도 Set Transaction Status로 처리해 줘야 한다

📌 ④ Queue에서 복수의 항목 조회하기

  • Get Queue Items 액티비티 사용
  • 속성에서 조회할 큐의 상태 체크하기
  • 삭제된 TestQueue의 항목은 4개

📌 ⑤ Queue에서 데이터 삭제하기

  • Get Queue Items로 큐 아이템 가져오기
  • Delete Queue Items 액티비티로 Get Queue Items로 가져온 큐 아이템 삭제하기
  • 큐의 상태가 "진행 중"에서 "삭제됨"으로 변경되었다

📌 ⑥ 복수의 Queue를 하나씩 가져오기

  • Add Queue Item 액티비티를 5번 반복하여 실행
  • Get Queue Items 액티비티로 큐를 조회하기
  • Set Transaction Status 액티비티로 조회한 큐아이템을 "성공"상태로 변경하기
  • 실행 결과

📌 ⑦ Queue에서 데이터테이블을 행단위로 저장하기

  • 데이터테이블 생성

  • 반복문으로 데이터테이블을 순회하며 큐에 저장
  • Bulk Add Queue Item 액티비티를 사용하면 데이터테이블을 한번에 큐에 저장할 수 있다
  • 실행 결과



5. Queue 관련 액티비티의 차이점

1) Get Transaction Item vs Get Queue Item

특징Get Transaction ItemGet Queue Item
목적하나의 항목을 가져와 처리(In Progress로 전환)큐의 여러 항목을 조회(상태 변경 없음)
결과 개수단일 항목여러 항목
상태 변경 여부가져온 항목은 In Progress 상태로 자동 변경상태 변경 없음
주요 사용 시나리오항목을 처리하고 상태를 Successful 또는 Failed로 설정큐 데이터 조회 분석
상태 필터링지원되지 않음(New 상태 항목만 가져옴)지원 (Ne, In Progress, Failed 등 필터 가능)
로봇 독점 접근가져온 항목은 독점(다른 로봇은 접근 불가)독점 아님(다른 로봇도 동일 항목 접근 가능)

- 작업이 필요한 경우 : Get Transaction Item을 사용하여 큐 항목을 가져오고 처리

- 데이터 조회 및 상태 분석 :Get Queue Items를 사용하여 다수의 항목을 가져와 분석

2) Add Transaction Item vs Add Queue Item

특징Add Transaction ItemAdd Queue Item
항목 상태추가 시 "In Progress"로 설정추가 시 "New" 상태로 설정
트랜잭션항목 추가와 동시에 트랜잭션 시작트랜잭션 시작하지 않음
반환 값QueueItem 변수로 반환반환 값 없음
사용 목적즉시 처리할 항목 추가나중에 처리할 항목 큐에 추가
처리 방식즉시 처리대기 상태

6. Queue의 장점

대량의 데이터를 효율적으로 관리 가능
여러 로봇이 동시에 처리할 수 있어 자동화 속도 향상
작업 실패 시 재시도를 통해 안정성 보장
Queue 기반 구조를 사용하면 자동화 프로세스를 확장 가능


7. 결론

Queue는 UiPath에서 대량 데이터를 저장하고 처리하는 구조
Dispatcher가 데이터를 Queue에 추가 → Performer가 가져와 처리
자동화 안정성과 속도를 높이는 핵심 요소


0개의 댓글