Вставка ключа верблюда JdbcMessageIdRepository после из маршрута вместо onCompletion - PullRequest
0 голосов
/ 03 июля 2018

Я использую Camel JdbcMessageIdRepository для достижения кластера высокой доступности, но у меня возникла проблема с реализацией.

Если ключ не найден, вставьте сразу вместо ключа маршрут завершения.

Из-за этой проблемы файлы обрабатываются дважды.

Может кто-нибудь помочь, Как сразу же вставить ключ, если не НАЙДЕН?

С уважением, Шарада.

1 Ответ

0 голосов
/ 05 июля 2018

Я расширил класс 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);
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...