Timeout Processing 샘플 확장

Timeout Control 노드는 동일한 ID로 구성된 두 노드에 의해 Timeout Notification 노드와 연관됩니다. ControlledTimeout 샘플에서는 둘 이상의 Timeout Control 노드가 하나의 Timeout Notification 노드와 연관될 수 있음을 보여줍니다. 이는 동일한 Timeout Notification 노드와 연관된 다른 Timeout Control 노드를 사용하여 Timeout Control 노드를 통해 처리한 시간 종료 요청을 갱신 또는 취소할 수 있음을 의미합니다. 시도해 보십시오. 가장 간단한 메소드는 취소 큐에 삽입 파일이 다른 입력 큐에 기록되도록 편집하여 다른 노드에서 처리하는 것입니다. 좀 더 고급 옵션은 시간 종료 요청에 있는 <AllowOverwrite> 필드를 으로 변경하는 것입니다. 이는 Timeout Control 노드가 수신되는 (시간 종료 요청 자체가 있는 <Identifier> 태그와 일치되는) 새 노드를 위해 현재 실행 중인 시간 종료 요청을 제거한다는 의미입니다. 또한 다른 시간 종료 ID로 새 시간 종료 요청 메시지를 작성하여 다중 동시 시간 종료 처리를 테스트할 수도 있습니다.

샘플에서 시간 종료 요청은 메시지 본문에 포함됩니다. 메시지 트리의 어느 위치든 전달할 수 있으며, 구성 시 달리 설명이 없으면 Timeout Control 노드는 로컬 환경에서 찾을 수 있습니다. 이 작동을 사용하려면, 시간 종료 ID를 동적으로 설정하고 충돌을 예방하는 방법을 보여주는 이 ESQL에서처럼 Timeout Control 노드 앞의 임의 위치에 Compute 노드를 추가해야 합니다.

CREATE COMPUTE MODULE Timeout_Set
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
SET OutputRoot = InputRoot;
SET OutputLocalEnvironment.TimeoutRequest.Action = 'SET';
SET OutputLocalEnvironment.TimeoutRequest.Identifier = OutputRoot.XML.Data.UniqueId;
SET OutputLocalEnvironment.TimeoutRequest.StartDate = 'TODAY';
SET OutputLocalEnvironment.TimeoutRequest.StartTime = 'NOW';
SET OutputLocalEnvironment.TimeoutRequest.Count = 10;
SET OutputLocalEnvironment.TimeoutRequest.Interval = 5;
RETURN TRUE;
END;
END MODULE;

Compute 노드를 "Pass Message and LocalEnvironment"로 설정하는 것을 잊지 마십시오. 그런 다음 Timeout Control 노드가 디폴트 값에서 변경된 경우 공백의 요청 위치가 되도록 변경해야 합니다.

Timeout Control 노드의 요청 위치

마지막으로 이 ESQL에서는 상대 시간을 생성하여 이후 60초 동안 시간 종료를 오프로 설정하는 방법을 보여줍니다.

CREATE COMPUTE MODULE UT_CONTROL_TIMEOUT_10
CREATE FUNCTION Main() RETURNS BOOLEAN
BEGIN
SET OutputRoot = InputRoot;
DECLARE jump INTERVAL;
SET jump = INTERVAL '60' SECOND;
DECLARE start TIME;
SET start = CURRENT_TIME + jump;
SET OutputLocalEnvironment.TimeoutRequest.Action = 'SET';
SET OutputLocalEnvironment.TimeoutRequest.Identifier = 'control';
SET OutputLocalEnvironment.TimeoutRequest.StartDate = 'TODAY';
SET OutputLocalEnvironment.TimeoutRequest.StartTime = start;
RETURN TRUE;
END;
END MODULE;

기본 페이지 아이콘   샘플 홈으로 돌아가기