RabbitMQ开启服务

创建receive.js文件,内容如下:

let amqp = require('amqplib/callback_api');


/**一个队列即一个服务**/
amqp.connect('amqp://localhost', function(err, conn) {
    /**队列01**/
    //启动接收队列
    conn.createChannel(function(err, ch) {
        let q = 'queue01';
        //设置队列持久化类型
        ch.assertQueue(q, {durable: false});
        console.log('队列'+`${q}`+'启动成功;等待获取信息', q);
        //开始接收队列内容
        ch.consume(q, function (msg) {
            console.log("队列"+`${q}`+"收到的信息:", msg.content.toString());

            //获取JSON格式内容中的参数
            if (JSON.parse(msg.content.toString()).b==="启动服务"){
                console.log("成功启动")
                require("E:/untitled/bin/bookshelf/连接数据库/Start")//启动其他服务
                console.log("传入配置信息")
                console.log("配置信息:"+JSON.parse(msg.content.toString()).a);//获取JSON中a的值
            }
        },{noAck: true});
    });




    /**队列02**/
    conn.createChannel(function(err, ch) {
        let q = 'queue02';
        ch.assertQueue(q, {durable: false});
        console.log('队列'+q+'启动成功;等待获取信息', q);
        ch.consume(q, function(msg) {
            console.log("队列"+q+"收到的信息:", msg.content.toString());
        }, {noAck: true});
    });
});

创建send.js文件(同一个项目或其他项目均可),内容如下:

var amqp = require('amqplib/callback_api');

amqp.connect('amqp://localhost', function(err, conn) {
    let message = '{"a":"配置信息获得","b":"启动服务"}'

/**延迟发送**/
      conn.createChannel(function(err, ch) {//队列01
          let q = 'queue01';
          // var msg = '获取队列01消息';
          let msg = message;
          function sleep() {
              setTimeout(function () {
                  ch.assertQueue(q, {durable: false});
                  // conn.close();
                  // process.exit(0)
                  let buf = new Buffer(msg)//序列化
                  ch.sendToQueue(q, buf );//向队列中发送序列化后的信息
                  console.log("队列"+`${q}`+"发送信息:", msg);
                  sleep()//调用外部sleep方法
              }, 2000);
          }
          sleep()
      });



    conn.createChannel(function(err, ch) {//队列02
        var q = 'queue02';
        var msg = '获取队列02消息';
        ch.assertQueue(q, {durable: false});
        ch.sendToQueue(q, Buffer.from(msg));
        console.log("队列02发送信息:", msg);
    });
    setTimeout(function() {conn.close(); process.exit(0) }, 500);
});

 

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页