Верблюжий агрегатор ForceCompletionOnStop VS completeAllOnStop - PullRequest
0 голосов
/ 25 октября 2018

В чем разница между forceCompletionOnStop и completeAllOnStop?можно или рекомендуется использовать оба вместе?

Из документации:

forceCompletionOnStop Указывает на завершение всех текущих агрегированных обменов, когда контекст остановлен

completeAllOnStop Указывает на ожидание завершения всех текущих и частичных (ожидающих) агрегированных обменов, когда контекст остановлен.Это также означает, что мы будем ждать завершения всех ожидающих обменов, которые хранятся в хранилище агрегации, поэтому хранилище пусто, прежде чем мы сможем остановиться.Возможно, вы захотите включить это при использовании хранилища данных на основе памяти, которое основано только на памяти, и не храните данные на диске.Когда эта опция включена, агрегатор ожидает завершения всех этих обменов до его остановки, при остановке CamelContext или маршрута, использующего его.1015 *

1 Ответ

0 голосов
/ 29 октября 2018

completeAllOnStop - это «нормальный» критерий завершения.Агрегатор Camel реализует интерфейс ShutdownAware, а критерии completeAllOnStop указывают для контекста Camel, что агрегатору требуется некоторое дополнительное время перед выключением для завершения агрегации.

forceCompletionOnStop, с другой стороны, пытается завершить все агрегации во время процесса выключения (prepareShutdown).

Так что мне они тоже кажутся очень похожими, оба пытаются завершить все агрегации до закрытия контекста Camel.Я бы рекомендовал использовать completeAllOnStop, потому что это, кажется, более активный способ.См. Также Camel Docs для получения дополнительной информации о стратегии отключения .

Я не знаю, если вы получаете "двойную проверку", если вы настроите их обоих: -)

Имейте в виду, что даже forceCompletionOnStop пропускается , если отключение является принудительным отключением !В этом случае Camel пытается отключиться как можно быстрее.Насколько я знаю, Camel выполняет принудительное отключение, если обычное отключение не удается в течение тайм-аута.

...