| "use strict"; |
| |
| const assert = require("assert"); |
| |
| const co = require("co"); |
| |
| const common = require("./common"); |
| const PushConsumer = require("../").PushConsumer; |
| |
| co(function *() { |
| const msgs = []; |
| const consumer = new PushConsumer("testGroup", { |
| nameServer: common.nameServer, |
| logFileNum: 5, |
| logFileSize: 1048576000, |
| logLevel: "debug" |
| }); |
| |
| consumer.subscribe("test", "*"); |
| consumer.on("message", function(msg, ack) { |
| msgs.push(msg); |
| ack.done(); |
| |
| // console.log(msg); |
| // return; |
| |
| if(msgs.length === common.messageCount) { |
| msgs.sort(function(a, b) { |
| return a.body < b.body ? -1 : 1; |
| }); |
| |
| console.log(msgs); |
| |
| for(let i = 0; i < msgs.length; i++) { |
| assert.deepStrictEqual(msgs[i], { |
| topic: "test", |
| tags: "bar", |
| keys: "foo", |
| body: `baz ${i}`, |
| msgId: msgs[i].msgId |
| }); |
| } |
| |
| console.time("consumer end"); |
| consumer.shutdown().then(() => { |
| console.timeEnd("consumer end"); |
| process.exit(0); |
| }).catch(e => { |
| console.error(e); |
| process.exit(4); |
| }); |
| } |
| }); |
| |
| console.time("consumer start"); |
| yield consumer.start(); |
| console.timeEnd("consumer start"); |
| }); |