46.6. 例子


此 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("timer:dig?period=30seconds").
   setBody(constant(10)).log("Kick ${in.body} buried/delayed tasks").
   to("beanstalk:testTube?command=kick");

在第一个路由中,我们在 tube "testTube"中侦听新作业。当它们到达时,我们尝试从消息正文解析整数值。如果成功,我们会记录日志并成功交换完成,使 Camel 组件从 Beanstalk 自动删除该作业。取而代之,当无法解析作业数据时,交换失败,以及默认接收它的 Camel 组件,以便稍后进行处理,或者我们可能会手动检查失败的作业。

因此,第二个路由定期请求 Beanstalk,从而向正常队列启动 10 个作业和/或延迟状态。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.