콘텐츠로 이동
무료 평가 시작

PDComm.HsmsWorkerOptions

클래스

HsmsWorker, GemEquipmentWorker, GemHostWorker의 큐 용량과 타이밍입니다.

public sealed record HsmsWorkerOptions

작업자는 시작할 때 이 값을 검증하며, 용량, 간격 또는 타임아웃이 양수가 아니거나, 바이트 예산이 음수이거나, HsmsWorkerOptions.MaxEventBytes가 프레임 본문 하나(HsmsOptions.MaxFrameBytes에서 14를 뺀 값)를 담을 수 없으면 ArgumentOutOfRangeException을 throw합니다. GEM 작업자에는 이벤트마다 GEM 결과 하나를 담을 공간도 추가로 필요합니다.

멤버

HsmsWorkerOptions

생성자

기본값으로 새 인스턴스를 초기화합니다.

public HsmsWorkerOptions()

참고

  • 객체 이니셜라이저에서 이 형식의 모든 required 속성을 설정해야 합니다.

CommandCapacity

속성

작업자 스레드에서 실행을 기다리는 명령의 최대 수를 가져옵니다. 루프 한 번에 실행하는 최대 명령 수이기도 합니다.

public required int CommandCapacity { get; init; }

EventCapacity

속성

ReadEventsAsync용으로 버퍼링되는 이벤트의 최대 수를 가져옵니다. 루프 한 번에 읽는 최대 네이티브 이벤트 수이기도 합니다.

public required int EventCapacity { get; init; }

MaxCommandBytes

속성

대기 중인 명령의 입력(메시지 본문과 기록된 값) 전체 크기의 최댓값(바이트)을 가져옵니다.

public required long MaxCommandBytes { get; init; }

전체 예산보다 큰 명령은 PdcommException과 PdcommStatus.Backpressure로 거부되므로 다시 시도해도 성공할 수 없습니다. 받은 GemResult를 실행될 때까지 유지하는 GEM 작업자 명령(예: GemHostWorker.AcknowledgeEventAsync, GemHostWorker.AcknowledgeAlarmAsync, 응답 명령)은 각각 메시지 하나(끝점 아이템 한도의 SecsLimits.MessageBytes)만큼을 예약합니다. 작업자가 받은 1차 메시지에 응답해야 하면 예산을 적어도 그 크기로 정합니다.

MaxEventBytes

속성

ReadEventsAsync용으로 버퍼링되는 이벤트 전체 크기의 최댓값(바이트)을 가져옵니다.

public required long MaxEventBytes { get; init; }

PollIntervalMilliseconds

속성

작업자가 폴링 사이에 대기하는 최대 시간(밀리초)을 가져옵니다. 작업이 도착하면 더 일찍 깨어납니다.

public required int PollIntervalMilliseconds { get; init; }

ShutdownTimeoutMilliseconds

속성

중지 또는 해제 후 작업자가 TimeoutException으로 실패하기 전에 연결을 닫고 비우는 데 쓸 수 있는 시간(밀리초)을 가져옵니다.

public required int ShutdownTimeoutMilliseconds { get; init; }