我使用rabbitMQ 来将任务发送给在运行时创建的工作人员(消费者)。目前,每次创建新任务时,都会创建一个新的工作线程。问题是这样的: - 用户创建一个任务
-创建一个worker,然后将任务发送到队列上供worker处理
-worker开始处理队列(worker基本上休眠了一段时间)
-另一个用户创建任务
-创建新的工作人员并将任务发送到队列上
-新的工作人员不处理新任务,同时绝对不执行任何操作,并且新任务由第一个工作人员在完成第一个任务后处理
我检查了rabbitmq的管理部分,有两个消费者绑定到队列,但其中一个似乎完成了所有工作,而另一个只是等待。
这是工人的代码: public class Worker extends Thread {
private final static String QUEUE_NAME = "Tasks";
private final static String QUEUE_COMPL = "Completed";
public static int id = 0;
private static final String EXCHANGE_NAME = "logs";
public int compteur;
String identifier;
public Worker() {
Worker.id++;
compteur = id;
}
public void run() {
try {
ConnectionFactory factory = new ConnectionFactory();
factory.setHost("localhost");
Connection connection = factory.newConnection();
Channel channel = connection.createChannel();
channel.queueDeclare(QUEUE_NAME, false, false, …Run Code Online (Sandbox Code Playgroud)