代码之家  ›  专栏  ›  技术社区  ›  Alex

JMS:消息选择器中的模数运算符

  •  2
  • Alex  · 技术社区  · 14 年前

    选择器应如下所示:

    "EntitiyIX Modulus 2 == 0" ==> route to queue A
    "EntitiyIX Modulus 2 != 0" ==> route to queue B
    

    谢谢, 亚历克斯

    4 回复  |  直到 14 年前
        1
  •  0
  •   Robin    14 年前

    假设这个属性是一个整数,那么我相信你可以

    • (实体IX/2)!=((EntityIX+1)/2)->路由到B
        2
  •  1
  •   Eran Harel    14 年前

    根据API( http://download.oracle.com/javaee/1.4/api/javax/jms/Message.html -向下滚动到“消息选择器”),没有模数运算符。

        3
  •  0
  •   rwitzel    12 年前

    如果你想用

    放一个 Content Enricher 在消息消费者面前。让内容丰富器计算一个散列值,该散列值在0到1之间。选择一个简单且可预测的哈希函数。对于订单号,您可以将最后两位数字除以100。在消息中保存散列值,比如在属性X中。

    然后,您将使用以下消息选择器配置三个消息使用者:“X<1/3”、“1/3<=X和X<2/3”、“2/3<=X”。

    如果允许更改邮件发件人,请在发送邮件之前添加属性。在这种情况下,内容丰富器是多余的。

        4
  •  0
  •   Rence    6 年前

    value=2 或任意整数

    EntityIX-((EntityIX/value)*value)=0

    EntityIX-((EntityIX/value)*value)<>0 ->到B的路线