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 个作业从uried 和/或延迟状态启动到普通队列。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.