我有一个表和我的程序在循环中读取表,而对于调用URL,当调用完成时,我将状态设置为OK。由其他程序插入到这个表中,链接列不是恒定的。表格类似:
Id link status
==============================================
1 | 192.168.0.1/adduser?id=1 |
2 | 192.168.0.2/adduser?id=2 |
3 | 10.0.0.1/getinfo?id=1 |
4 | 192.168.0.1/deleteuser?id=10 |
所以我想用一个队列、端点和消息处理器来实现每个记录。例如:消息处理器1(队列1,端点1)
endpoint1="192.168.0.1">
消息处理器2(队列2,端点2)
endpoint2="192.168.0.2">
消息处理器3(队列3,端点3)
endpoint3="10.0.0.1">
我对用静态解决方案定义没有问题,但我不知道动态定义队列、端点和消息处理器,因为表中的新行将有新的链接,我以前不喜欢定义。谢谢
不确定我是否做对了,但您可以在发送数据之前通过设置"to"标头来设置要发送数据的队列。下面是一个示例。
<header xmlns:ns="http://org.apache.synapse/xsd" name="To" expression="concat('jms:/',get-property('queueToSend'), '?transport.jms.ConnectionFactoryJNDIName=QueueConnectionFactory&java.naming.factory.initial=org.apache.activemq.jndi.ActiveMQInitialContextFactory&java.naming.provider.url=failover:(tcp://server1:port,tcp://server2:port)&transport.jms.DestinationType=queue&transport.jms.UserName=queuUser&transport.jms.Password=queuePass')"></header>
<send></send>