天天看點

RabbitMQ(二)——Work Queues

一個發送者,多個接收者,這是應工作隊列,使用場景

web應用程式中處理複雜的任務且不能在一個短的HTTP請求内完成

RabbitMQ(二)——Work Queues

建立多個接收者

我們在一的代碼基礎上建立第二個接收者

@Component
@RabbitListener(queues = "hello")
public class Receiver2 {
    @RabbitHandler
    public void process(String hello) {
        System.out.println("Receiver2  : " + hello);
    }
}
           

測試,這裡發送50個消息

/**
     * 測試消息
     */
    @RequestMapping(value = "/sender", method = RequestMethod.GET)
    @ResponseBody
    public ResponseResult sender() {
        for (int i=;i<;i++){
            sender.send();
        }

        return ResponseResult.success("ok");
    }
           

同樣,兩者都能交替接收。

...
Receiver  : 0你好 Wed Nov 15 14:15:09 CST 2017
Receiver2  : 1你好 Wed Nov 15 14:15:09 CST 2017
Receiver  : 2你好 Wed Nov 15 14:15:09 CST 2017
Receiver2  : 3你好 Wed Nov 15 14:15:09 CST 2017
Receiver  : 4你好 Wed Nov 15 14:15:09 CST 2017
Receiver2  : 5你好 Wed Nov 15 14:15:09 CST 2017
Receiver  : 6你好 Wed Nov 15 14:15:09 CST 2017
Receiver2  : 7你好 Wed Nov 15 14:15:09 CST 2017
Receiver  : 8你好 Wed Nov 15 14:15:09 CST 2017
Receiver2  : 9你好 Wed Nov 15 14:15:09 CST 2017
Receiver  : 10你好 Wed Nov 15 14:15:09 CST 2017

...
           

當然還有可能有多個發送者,複制發送者即可,結果和一對多一樣,仍然會均勻接收到消息