如何给WSO2消费消息的时间间隔
How to give WSO2 time interval for consuming messages
我需要将 wso2 配置为使用来自 activemq 的时间间隔一条一条地使用消息。有没有办法在给定时间只消费一条消息?
当activemq上有很多消息时,WSO2会消费所有消息并调用后端服务。后端服务不处理所有传入消息。
我创建了一个 jms 入站端点和一个代理服务,但我没有找到 属性 或方法。
入站端点:
<?xml version="1.0" encoding="UTF-8"?>
<inboundEndpoint xmlns="http://ws.apache.org/ns/synapse"
name="activemqDeneme"
sequence="esb-QueueSQ"
onError="conf:/sequences/esb.faultSQ.xml"
protocol="jms"
suspend="false">
<parameters>
<parameter name="interval">60000</parameter>
<parameter name="sequential">false</parameter>
<parameter name="coordination">true</parameter>
<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
<parameter name="java.naming.provider.url">tcp://localhost:6052</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
<parameter name="transport.jms.Destination">queue_request</parameter>
<parameter name="transport.jms.SessionTransacted">false</parameter>
<parameter name="transport.jms.SessionAcknowledgement">AUTO_ACKNOWLEDGE</parameter>
<parameter name="transport.jms.CacheLevel">3</parameter>
<parameter name="transport.jms.SubscriptionDurable">false</parameter>
<parameter name="transport.jms.ContentType">application/json</parameter>
<parameter name="transport.jms.SharedSubscription">false</parameter>
</parameters>
</inboundEndpoint>
代理服务:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="Queue"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="jms">
<target>
<inSequence>
<sequence description="call activemq" key="esb-QueueSQ"/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.jms.Destination">queue_request</parameter>
<parameter name="transport.jms.ContentType">
<rules xmlns="">
<jmsProperty>contentType</jmsProperty>
<default>application/json</default>
</rules>
</parameter>
<description/>
</proxy>
你尝试过
<parameter name="sequential">true</parameter>
当设置为 false 时,它可能会并行使用它们。在您的序列也需要按顺序排列之后。
我需要将 wso2 配置为使用来自 activemq 的时间间隔一条一条地使用消息。有没有办法在给定时间只消费一条消息?
当activemq上有很多消息时,WSO2会消费所有消息并调用后端服务。后端服务不处理所有传入消息。
我创建了一个 jms 入站端点和一个代理服务,但我没有找到 属性 或方法。
入站端点:
<?xml version="1.0" encoding="UTF-8"?>
<inboundEndpoint xmlns="http://ws.apache.org/ns/synapse"
name="activemqDeneme"
sequence="esb-QueueSQ"
onError="conf:/sequences/esb.faultSQ.xml"
protocol="jms"
suspend="false">
<parameters>
<parameter name="interval">60000</parameter>
<parameter name="sequential">false</parameter>
<parameter name="coordination">true</parameter>
<parameter name="java.naming.factory.initial">org.apache.activemq.jndi.ActiveMQInitialContextFactory</parameter>
<parameter name="java.naming.provider.url">tcp://localhost:6052</parameter>
<parameter name="transport.jms.ConnectionFactoryJNDIName">QueueConnectionFactory</parameter>
<parameter name="transport.jms.ConnectionFactoryType">queue</parameter>
<parameter name="transport.jms.Destination">queue_request</parameter>
<parameter name="transport.jms.SessionTransacted">false</parameter>
<parameter name="transport.jms.SessionAcknowledgement">AUTO_ACKNOWLEDGE</parameter>
<parameter name="transport.jms.CacheLevel">3</parameter>
<parameter name="transport.jms.SubscriptionDurable">false</parameter>
<parameter name="transport.jms.ContentType">application/json</parameter>
<parameter name="transport.jms.SharedSubscription">false</parameter>
</parameters>
</inboundEndpoint>
代理服务:
<?xml version="1.0" encoding="UTF-8"?>
<proxy xmlns="http://ws.apache.org/ns/synapse"
name="Queue"
startOnLoad="true"
statistics="disable"
trace="disable"
transports="jms">
<target>
<inSequence>
<sequence description="call activemq" key="esb-QueueSQ"/>
</inSequence>
<outSequence/>
<faultSequence/>
</target>
<parameter name="transport.jms.Destination">queue_request</parameter>
<parameter name="transport.jms.ContentType">
<rules xmlns="">
<jmsProperty>contentType</jmsProperty>
<default>application/json</default>
</rules>
</parameter>
<description/>
</proxy>
你尝试过
<parameter name="sequential">true</parameter>
当设置为 false 时,它可能会并行使用它们。在您的序列也需要按顺序排列之后。