227.12. 도착 시간 테스트
Camel 2.7부터 사용 가능
Mock 엔드포인트는 메시지의 도착 시간을 교환에서 속성으로 저장합니다.
Date time = exchange.getProperty(Exchange.RECEIVED_TIMESTAMP, Date.class);
이 정보를 사용하여 메시지가 도크에 도착한 시기를 알 수 있습니다. 그러나 또한 이전 메시지와 모크에 도착한 다음 메시지 사이의 시간 간격을 알 수있는 기반을 제공합니다. 이를 사용하여 Mock 엔드포인트에서 도착 DSL을 사용하여 기대치를 설정할 수 있습니다.
예를 들어 첫 번째 메시지가 다음 작업을 수행하기 전에 0-2초 사이에 도착해야 한다고 가정합니다.
mock.message(0).arrives().noLaterThan(2).seconds().beforeNext();
또한 2번째 메시지(0 인덱스 기반)가 이전 메시지(0-2초)에 0-2초 내에 도달하는 것으로 정의할 수도 있습니다.
mock.message(1).arrives().noLaterThan(2).seconds().afterPrevious();
둘 사이를 사용하여 하한을 설정할 수도 있습니다. 예를 들어 1-4초 사이여야 한다고 가정합니다.
mock.message(1).arrives().between(1, 4).seconds().afterPrevious();
또한 모든 메시지에 대한 기대치를 설정할 수 있습니다. 예를 들어 간 간격이 최대 1초여야 한다고 말할 수도 있습니다.
mock.allMessages().arrives().noLaterThan(1).seconds().beforeNext();
시간 단위
위 예제에서는 시간 단위로 초 를 사용하지만 Camel은 밀리초 와 분도 제공합니다.