Одно решение:
Вы можете запустить KafkaTemplate.executeInTransaction()
в другом потоке и передать запросы от прослушивателя TCP через BlockingQueue
или подобное, с очередью poll()
, измененной в рамках обратного вызова (возможно, с таймаутом ).
Тогда, когда применяется правильное условие; выйдите из функции обратного вызова, чтобы зафиксировать транзакцию, затем запустите другую.