首页 > 解决方案 > 死信队列会创建新线程吗?

问题描述

我有以下 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();
    }
  }
}

程序大致写好了。方法按照它们的名字所暗示的去做。

我的问题是这样的:

  1. deadletterMessagetoTestQueue()方法被调用时,它会在再次向test.queue发送消息时创建一个新线程吗?

  2. 如果是这样,这意味着线程将被重新初始化为 0。什么是线程是静态的?

让我知道问题是否需要更清楚。谢谢 :)

标签: javamultithreadingspring-bootrabbitmqspring-rabbit

解决方案


推荐阅读