Как снять отметку с дубликата для перезапуска потока через входящие, для которых установлено предотвращение дубликатов - PullRequest
0 голосов
/ 14 февраля 2019

Вопрос в весенней интеграции, входящий адаптер имеет preventDuplicates(true), как это работает под капотом?Причиной этого вопроса является то, что если поток прерывается и не завершается из-за некоторых исключений, возникающих в терминалах или посредниках-активаторах службы, входящий должен иметь возможность поднять это снова.

1 Ответ

0 голосов
/ 15 февраля 2019

По умолчанию настраивается AcceptOnceFileListFilter, который защищает только от дубликатов с картой в памяти.

Если вы явно добавляете AcceptOnceFileListFilter (или FileSystemPersistentAcceptOnceFileListFilter, который может сохранять состояние впостоянное хранилище), вы можете позвонить remove() - они оба реализуют ResettableFileListFilter.

/**
 * A {@link FileListFilter} that can be reset by removing a specific file from its
 * state.
 * @author Gary Russell
 * @since 4.1.7
 *
 */
public interface ResettableFileListFilter<F> extends FileListFilter<F> {

    /**
     * Remove the specified file from the filter so it will pass on the next attempt.
     * @param f the element to remove.
     * @return true if the file was removed as a result of this call.
     */
    boolean remove(F f);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...