46.6. 예
이 Camel 구성 요소를 사용하면 처리를 위한 작업을 요청하고 둘 다 Cryostatstalkd 데몬에 제공할 수 있습니다. 간단한 데모 경로는 다음과 같을 수 있습니다.
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("timer:dig?period=30seconds"). setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks"). to("beanstalk:testTube?command=kick");
첫 번째 경로에서 "테스트 Cryostat"에서 새로운 작업을 청취하고 있습니다. 도착하면 메시지 본문에서 정수 값을 구문 분석하려고 합니다. 성공적으로 완료되면 로그를 기록하면 Camel 구성 요소가 이 작업을 자동으로 삭제합니다. 반대로 작업 데이터를 구문 분석할 수 없는 경우 교환 실패 및 Camel 구성 요소는 기본적으로 이를 버퍼링하여 나중에 처리하거나 실패한 작업을 수동으로 검사할 수 있습니다.
따라서 두 번째 경로는 주기적으로 Cryostatstalk를 요청하여 일반 큐에 묻히기 및/또는 지연된 10개의 작업을 시작합니다.