37.3. 소비자 템플릿 사용
37.3.1. 개요 링크 복사링크가 클립보드에 복사되었습니다!
소비자 템플릿은 들어오는 메시지를 수신하기 위해 소비자 엔드포인트를 폴링하는 방법을 제공합니다. 교환 개체 또는 메시지 본문의 형태로 수신되는 메시지를 수신하도록 선택할 수 있습니다(메시지 본문이 내장형 형식 변환기를 사용하여 특정 형식으로 캐스팅될 수 있음).
37.3.2. 폴링 교환의 예 링크 복사링크가 클립보드에 복사되었습니다!
소비자 템플릿을 사용하여 다음과 같은 폴링 방법 중 하나를 사용하여 소비자 끝점을 폴링할 수 있습니다. 즉, receive()
를 차단하거나 시간 초과를 사용하여 receive()
를 수신하거나, 즉시 반환하는NoWait()
를 받을 수 있습니다. 소비자 엔드포인트가 서비스를 나타내기 때문에 교환을 위해 폴링을 시도하기 전에 start()
를 호출하여 서비스 스레드를 시작하는 것도 중요합니다.
다음 예제에서는 blocking receive()
메서드를 사용하여 seda:foo
소비자 끝점의 교환을 폴링하는 방법을 보여줍니다.
소비자 템플릿 인스턴스인 consumer
가 CamelContext.createConsumerTemplate()
메서드를 사용하여 인스턴스화되고 소비자 서비스 스레드는 ConsumerTemplate.start()
를 호출하여 시작됩니다.
37.3.3. 폴링 메시지 본문의 예 링크 복사링크가 클립보드에 복사되었습니다!
다음 방법 중 하나를 사용하여 수신 메시지 본문에 소비자 끝점을 폴링할 수도 있습니다. 즉,
를 시간 초과로 수신하거나, 즉시 반환하는 receiveBody()
receiveBodyNoWait()
입니다. 이전 예에서와 마찬가지로 교환을 위해 폴링을 시도하기 전에 start()
를 호출하여 서비스 스레드를 시작하는 것도 중요합니다.
다음 예제에서는 차단 receiveBody()
메서드를 사용하여 seda:foo
소비자 끝점에서 들어오는 메시지 본문을 폴링하는 방법을 보여줍니다.
37.3.4. 교환을 폴링하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
소비자 끝점에서 교환을 폴링하는 세 가지 기본 방법이 있습니다. 시간 초과 블록이 없는 receive()
; 지정된 시간 초과 블록이 있는 receive()
; 밀리초 동안 시간 초과 블록이 있는 receive(); 수신NoWait()
는 차단되지 않습니다. 소비자 끝점을 끝점 URI 또는 끝점 인스턴스로 지정할 수 있습니다.
37.3.5. 메시지 본문을 폴링하는 방법 링크 복사링크가 클립보드에 복사되었습니다!
소비자 끝점에서 메시지 본문을 폴링하는 세 가지 기본 방법이 있습니다. 시간 초과 블록이 없는 receiveBody()
; 지정된 기간 동안 시간 초과 블록이 있는 receiveBody()
, receiveBodyNoWait()
는 차단되지 않습니다. 소비자 끝점을 끝점 URI 또는 끝점 인스턴스로 지정할 수 있습니다. 또한 이러한 메서드의 템플릿 양식을 호출하여 반환된 본문을 기본 제공 형식 변환기를 사용하여 특정 유형
T
로 변환할 수 있습니다.
M