我已经看过这个链接了,spring integration jdbc adapter for multiple nodes.Which是很有帮助的。我对以下几点有疑问。
我有一个多线程环境(多个节点),其中一个select查询有n行符合条件,但我配置了max- rows -per-poll=5,然后对这5条记录进行了更新。轮询器配置了transaction。
当这5个记录由一个节点中的一个线程处理时,所有其他线程将等待,或者它们将从n-5个记录中选择每个5个记录并进行处理?
我使用int-jdbc:inbound-channel-adapter和Oracle数据库。
发布于 2018-07-29 02:07:56
您需要了解一下max-messages-per-poll和max-rows之间的区别:https://docs.spring.io/spring-integration/docs/5.0.7.RELEASE/reference/html/jdbc.html#jdbc-max-rows-per-poll-versus-max-messages-per-poll。
另外,对于Oracle,如果您真的想获得新的记录,而不是等待已经锁定的记录,那么我建议您使用FOR UPDATE SKIP LOCKED。
https://stackoverflow.com/questions/51568595
复制相似问题