이 Camel 구성 요소를 사용하면 처리 작업을 요청하고 Beanstalkd 데몬에 제공할 수 있습니다. 간단한 데모 경로는 다음과 같습니다.
from("beanstalk:testTube").
log("Processing job #${property.beanstalk.jobId} with body ${in.body}").
process(new Processor() {
@Override
public void process(Exchange exchange) {
// try to make integer value out of body
exchange.getIn().setBody( Integer.valueOf(exchange.getIn().getBody(classOf[String])) );
}
}).
log("Parsed job #${property.beanstalk.jobId} to body ${in.body}");
from("beanstalk:testTube").
log("Processing job #${property.beanstalk.jobId} with body ${in.body}").
process(new Processor() {
@Override
public void process(Exchange exchange) {
// try to make integer value out of body
exchange.getIn().setBody( Integer.valueOf(exchange.getIn().getBody(classOf[String])) );
}
}).
log("Parsed job #${property.beanstalk.jobId} to body ${in.body}");
Copy to ClipboardCopied!Toggle word wrapToggle overflow
Copy to ClipboardCopied!Toggle word wrapToggle overflow
첫 번째 경로에서 "테스트"의 새로운 작업을 청취하고 있습니다. 이 값이 전달되면 메시지 본문에서 정수 값을 구문 분석하려고 합니다. 성공하면 이를 기록하고 성공적인 교환 완료로 Camel 구성 요소가 Beanstalk에서 이 작업을 자동으로 삭제합니다. 작업 데이터를 구문 분석할 수 없는 경우, 교환이 실패하고 Camel 구성 요소가 기본적으로 이를 번들링하므로 나중에 처리할 수도 있고 실패한 작업을 수동으로 검사할 수 있습니다.
따라서 두 번째 경로는 Beanstalk를 주기적으로 요청하여 일반 대기열에 mburied 및/또는 지연된 상태에서 10개의 작업을 시작합니다.