gpt4 book ai didi

java - Spring集成-读取JDBC,发送AMQP消息并COMMIT

转载 作者:行者123 更新时间:2023-12-01 09:09:03 24 4
gpt4 key购买 nike

我正在尝试:

  1. 读取数据库
  2. 发送 AMQP 消息
  3. 更新数据库

如果消息发送失败,数据库更新也会失败。如果更新数据库失败,消息将被发送多次。

<int:channel id="output-channel" />
<int-jdbc:inbound-channel-adapter query="SELECT MAX(d) AS d FROM a" update="UPDATE a SET d=1 WHERE d=367"
channel="output-channel" data-source="dataSource">
<int:poller fixed-rate="50000" max-messages-per-poll="1">
<int:transactional transaction-manager="dataSourceTransactionManager2" />
</int:poller>
</int-jdbc:inbound-channel-adapter>
<int-amqp:outbound-channel-adapter channel="output-channel" exchange-name="nameex" amqp-template="rabbitTemplate" />

通过此设置我可以看到,在更新失败时,根本不会发送消息。看来outbound-channel-adapter的调用是在更新之后。

还有一个问题 - 每次我知道数据库中有东西时,是否有可能以编程方式触发入站 channel 适配器,但不要等待轮询器太久?

谢谢!

最佳答案

要在 amqp 发送后进行更新,请输入 outputChannel一个<publish-subscribe-channel/> .

订阅 amqp 出站适配器和 JDBC 出站适配器(或网关)。设置order="1"对于 amqp 和 order="2"对于 JDBC。

关于java - Spring集成-读取JDBC,发送AMQP消息并COMMIT,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41038732/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com