Red Hat Training

A Red Hat training course is available for Red Hat Fuse

43.5. 例

この Camel コンポーネントを使用すると、ジョブをリクエストして Beantalkd デーモンに提供することができます。シンプルなデモルートは次のようになります。

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");

最初のルートでは、「testTube」で新規ジョブをリッスンしています。これらが到着すると、メッセージボディーから整数値を解析しようとしています。正常に実行された場合、これをログに記録します。これにより、エクスチェンジの完了時に Camel コンポーネントにより、このジョブが自動的に Beantalk から 削除 されます。ただし、ジョブデータを解析できない場合、エクスチェンジが失敗し、Camel コンポーネントがデフォルトで検出され、後で処理するか、失敗したジョブを手動で検査することができます。 

2 つ目のルートは、定期的に Beantalk を 要求 して 10 個のジョブを開始し、または遅延状態を通常のキューに入れます。