У меня есть следующий слушатель RabbitMQ:
class TestClass {
private ThreadLocal<Integer> myThreadLocal =
new ThreadLocal<Integer>() {
@Override public Integer initialValue() {
return 0;
}
};
@RabbitListener("${test.queue}")
public void listener(Message message) {
// some logic
incrementThreadLocalValueByOne();
// some logic
if(/*some condition*/) {
deadletterMessagetoTestQueue();
} else {
doSomethingElse();
}
}
}
Программа написана примерно. Методы делают то, что предлагают их имена.
Мой вопрос таков:
Когда deadletterMessagetoTestQueue () вызовет метод, он создаст новый поток, когда повторная отправка сообщения на test.queue ?
Если это произойдет, это означает, что поток будет повторно инициализирован с 0. Какой поток был установлен c?
Дайте мне знать, если вопросы требуют большей ясности. Спасибо:)