我正在使用Camel JdbcMessageIdRepository来实现HA群集,但是我在实现方面遇到问题。
如果未找到密钥,请立即插入,而不要插入密钥“完成”路由。
由于此问题,文件被处理了两次。
有人可以帮忙吗?如果找不到,如何立即插入Key?
关于, 萨拉达。
答案 0 :(得分:0)
我扩展了JdbcMessageIdRepository类,并覆盖了 queryforInt
public class FuseJDBCMessageIdRepository extends JdbcMessageIdRepository {
public FuseJDBCMessageIdRepository() {
}
public FuseJDBCMessageIdRepository(DataSource dataSource, String processorName) {
super(dataSource, processorName);
}
public FuseJDBCMessageIdRepository(DataSource dataSource, TransactionTemplate transactionTemplate, String processorName) {
super(dataSource, transactionTemplate, processorName);
}
public FuseJDBCMessageIdRepository(JdbcTemplate jdbcTemplate, TransactionTemplate transactionTemplate) {
super(jdbcTemplate, transactionTemplate);
}
@Override
public int queryForInt(String key) {
int value = super.queryForInt(key);
if (value == 0 && insert(key) >0){
return value;
}
return value;
}
@Override
public int insert(String key) {
return super.insert(key);
}
@Override
public int delete(String key) {
return super.delete(key);
}
}