4장. 지원 서비스
4.1. 작업 서비스
작업 서비스는 클라우드 환경에서 작업을 예약하고 실행합니다. 독립 서비스에서는 HTTP 호출 또는 Knative 이벤트 전달을 포함하여 지원되는 상호 작용 모드를 통해 시작할 수 있는 이러한 작업을 구현합니다.
OpenShift Serverless Logic에서 작업 서비스는 시간 트리거 작업 실행을 제어합니다. 따라서 워크플로우에서 사용할 수 있는 모든 시간 기반 상태는 워크플로우와 작업 서비스 간의 상호 작용에 의해 처리됩니다.
예를 들어 워크플로우 실행이 구성된 타임아웃을 사용하여 상태에 도달하면 해당 작업이 작업 서비스에서 생성되고 시간 초과가 충족되면 HTTP 콜백이 실행되어 워크플로우에 알립니다.
작업 서비스의 주요 목표는 실행해야 하는 예약된 작업과 같은 활성 작업을 관리하는 것입니다. 작업이 최종 상태가 되면 작업 서비스에서 해당 상태를 제거합니다. 영구 리포지토리의 작업 정보를 유지하기 위해 작업 서비스는 Data Index Service와 같은 외부 서비스에서 기록할 수 있는 상태 변경 이벤트를 생성합니다.
OpenShift Serverless Operator를 사용하여 워크플로우를 배포하는 경우 작업 서비스를 수동으로 설치하거나 구성할 필요가 없습니다. Operator는 이러한 작업을 자동으로 처리하고 각 워크플로우에 연결하는 데 필요한 모든 구성을 관리합니다.
4.1.1. 작업 서비스 리더 선택 프로세스
작업 서비스는 단일 서비스로 작동하므로 활성 인스턴스가 하나의 활성 인스턴스만 작업을 예약하고 실행할 수 있습니다.
여러 인스턴스가 실행될 수 있는 클라우드에 서비스가 배포될 때 충돌을 방지하기 위해 작업 서비스는 리더 선택 프로세스를 지원합니다. 리더로 선택한 인스턴스만 작업을 수신하고 예약하기 위해 외부 통신을 관리합니다.
Leader가 아닌 인스턴스는 대기 상태에서 비활성 상태로 유지되지만 선택 프로세스를 통해 계속 리더가 되려고 시도합니다. 새 인스턴스가 시작되면 즉시 리더십을 가정하지 않습니다. 대신 리더 선택 프로세스에 입력하여 리더 역할을 수행할 수 있는지 확인합니다.
현재 리더가 응답하지 않거나 종료되는 경우 실행 중인 다른 인스턴스가 리더로 대체됩니다.
이 리더 선택 메커니즘은 현재 PostgreSQL 구현에서만 지원되는 기본 지속성 백엔드를 사용합니다.