基于时间间隔的限制

时间:2013-01-09 05:27:27

标签: java activemq apache-camel

我在ActiveMq中有4个队列,来自每个队列的消息应该发送到外部服务,用于从队列中获取消息我正在使用Apache Camel并且我正在限制消息。 但我在这里的问题是针对不同的队列,我有不同的社交时间,例如。 队列1消息应仅在上午6点到下午5点之间发送, 队列2消息应该仅在上午10点到晚上10点之间发送。

所以我想知道我们可以使用Apache camel限制来处理这个问题。或者请给我一些解决方案。

如果有人没有解决我的问题,请告诉我。提前谢谢。

2 个答案:

答案 0 :(得分:2)

Camel允许您将路线与路线政策相关联。我们有一个开箱即用的政策,基于骆驼石英,并按计划进行。这允许您为路线的营业时间设置策略。

文档从这里开始:http://camel.apache.org/routepolicy。并且存在从该页面到基于调度程序的策略的链接。

请注意,有一张票 - http://issues.apache.org/jira/browse/CAMEL-5929 - 关于您是否重新启动应用服务器,如果您在开放时间内开始,则路线不会启动。例如你的下午12点至下午6点。然后你在下午3点重启应用程序(例如在两者之间)。然后我开始第二天的路线。该票据允许您配置为在开始窗口内启动时强制启动。

答案 1 :(得分:0)

  1. 为每个队列/间隔设置一个路由。
  2. 在应该开始/停止路线的时间点触发Quartz timers
  3. 您可以让Quartz路由使用control bus模式来启动/停止队列路由。