Skip to content

Commit

Permalink
update redis creating
Browse files Browse the repository at this point in the history
  • Loading branch information
icebob committed Dec 10, 2023
1 parent d4efe6c commit e4a1f89
Show file tree
Hide file tree
Showing 6 changed files with 28 additions and 27 deletions.
4 changes: 2 additions & 2 deletions dev/client.js
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ const broker = new ServiceBroker({
}
},
*/
transporter: "TCP",
transporter: "Redis",
//transporter: "kafka://127.0.0.1:9093",
//transporter: "amqp://192.168.0.181:5672",
//transporter: "NATS",
Expand All @@ -34,7 +34,7 @@ const broker = new ServiceBroker({
//discoverer: "Etcd3"
},

//cacher: true,
cacher: "Redis",

metrics: {
enabled: false,
Expand Down
6 changes: 3 additions & 3 deletions dev/server.js
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ const broker = new ServiceBroker({
}
},
*/
transporter: "TCP",
transporter: "Redis",
//transporter: "kafka://localhost:9093",
//transporter: "amqp://192.168.0.181:5672",
//transporter: "AMQP10",
Expand Down Expand Up @@ -125,9 +125,9 @@ broker.createService({
broker.createService({
name: "metrics",
events: {
"$node.pong"({ nodeID, elapsedTime, timeDiff }) {
"$node.pong"({ params }) {
this.logger.info(
`PING '${nodeID}' - Time: ${elapsedTime}ms, Time difference: ${timeDiff}ms`
`PING '${params.nodeID}' - Time: ${params.elapsedTime}ms, Time difference: ${params.timeDiff}ms`
);
}
/*"metrics.circuit-breaker.opened"(payload, sender) {
Expand Down
11 changes: 6 additions & 5 deletions src/cachers/redis.js
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,8 @@

"use strict";

let Redis;
let R;

const BaseCacher = require("./base");
const _ = require("lodash");
const { METRIC } = require("../metrics");
Expand Down Expand Up @@ -65,7 +66,7 @@ class RedisCacher extends BaseCacher {
init(broker) {
super.init(broker);
try {
Redis = require("ioredis");
R = require("ioredis");
} catch (err) {
/* istanbul ignore next */
this.broker.fatal(
Expand All @@ -84,9 +85,9 @@ class RedisCacher extends BaseCacher {
throw new BrokerOptionsError("There is no 'nodes' configuration for cluster.");
}

this.client = new Redis.Cluster(this.opts.cluster.nodes, this.opts.cluster.options);
this.client = new R.Cluster(this.opts.cluster.nodes, this.opts.cluster.options);
} else {
this.client = new Redis(this.opts.redis);
this.client = new R.Redis(this.opts.redis);
}

this.connected = false;
Expand Down Expand Up @@ -459,7 +460,7 @@ class RedisCacher extends BaseCacher {
}

_scanDel(pattern) {
if (this.client instanceof Redis.Cluster) {
if (this.client instanceof R.Cluster) {
return this._clusterScanDel(pattern);
} else {
return this._nodeScanDel(this.client, pattern);
Expand Down
8 changes: 4 additions & 4 deletions src/transporters/redis.js
Original file line number Diff line number Diff line change
Expand Up @@ -193,9 +193,9 @@ class RedisTransporter extends Transporter {
*/
getRedisClient(opts) {
let client;
let Redis;
let R;
try {
Redis = require("ioredis").Redis;
R = require("ioredis");
} catch (err) {
/* istanbul ignore next */
this.broker.fatal(
Expand All @@ -209,10 +209,10 @@ class RedisTransporter extends Transporter {
throw new BrokerOptionsError("No nodes defined for cluster");
}
this.logger.info("Setting Redis.Cluster transporter");
client = new Redis.Cluster(opts.cluster.nodes, opts.cluster.clusterOptions);
client = new R.Cluster(opts.cluster.nodes, opts.cluster.clusterOptions);
} else {
this.logger.info("Setting Redis transporter");
client = new Redis(/** @type {any} */ (opts));
client = new R.Redis(/** @type {any} */ (opts));
}
return client;
}
Expand Down
20 changes: 10 additions & 10 deletions test/unit/cachers/redis.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -4,10 +4,10 @@ const { protectReject } = require("../utils");
const C = require("../../../src/constants");

jest.mock("ioredis");
const Redis = require("ioredis");
const R = require("ioredis");
const BaseLogger = require("../../../src/loggers/base");

Redis.mockImplementation(() => {
R.Redis = jest.fn(() => {
let onCallbacks = {};
return {
on: jest.fn((event, cb) => (onCallbacks[event] = cb)),
Expand All @@ -21,7 +21,7 @@ Redis.mockImplementation(() => {
};
});

Redis.Cluster = jest.fn(() => {
R.Cluster = jest.fn(() => {
let onCallbacks = {};
return {
on: jest.fn((event, cb) => (onCallbacks[event] = cb)),
Expand Down Expand Up @@ -89,29 +89,29 @@ describe("Test RedisCacher init", () => {
it("should create Redis client with default options", () => {
const cacher = new RedisCacher();

Redis.mockClear();
R.Redis.mockClear();
cacher.init(broker);

// expect(cacher.client).toBeInstanceOf(Redis);
expect(cacher.serializer).toBeInstanceOf(Serializers.JSON);

expect(Redis).toHaveBeenCalledTimes(1);
expect(Redis).toHaveBeenCalledWith(undefined);
expect(R.Redis).toHaveBeenCalledTimes(1);
expect(R.Redis).toHaveBeenCalledWith(undefined);
});

it("should create Redis client with default options", () => {
const opts = { redis: { host: "1.2.3.4" } };
const cacher = new RedisCacher(opts);

jest.spyOn(Serializers.JSON.prototype, "init");
Redis.mockClear();
R.Redis.mockClear();
cacher.init(broker);

// expect(cacher.client).toBeInstanceOf(Redis);
expect(cacher.serializer).toBeInstanceOf(Serializers.JSON);

expect(Redis).toHaveBeenCalledTimes(1);
expect(Redis).toHaveBeenCalledWith(opts.redis);
expect(R.Redis).toHaveBeenCalledTimes(1);
expect(R.Redis).toHaveBeenCalledWith(opts.redis);

expect(Serializers.JSON.prototype.init).toHaveBeenCalledTimes(1);
expect(Serializers.JSON.prototype.init).toHaveBeenCalledWith(broker);
Expand All @@ -122,7 +122,7 @@ describe("Test RedisCacher init", () => {

const cacher = new RedisCacher();

Redis.mockClear();
R.Redis.mockClear();
cacher.init(broker);

cacher.client.onCallbacks.error(new Error("Ups!"));
Expand Down
6 changes: 3 additions & 3 deletions test/unit/transporters/redis.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -8,9 +8,9 @@ const { protectReject } = require("../utils");

jest.mock("ioredis");

const Redis = require("ioredis");
const R = require("ioredis");

Redis.mockImplementation(() => {
R.Redis = jest.fn(() => {
let onCallbacks = {};
return {
on: jest.fn((event, cb) => (onCallbacks[event] = cb)),
Expand All @@ -22,7 +22,7 @@ Redis.mockImplementation(() => {
};
});

Redis.Cluster = jest.fn(() => {
R.Cluster = jest.fn(() => {
let onCallbacks = {};
return {
on: jest.fn((event, cb) => (onCallbacks[event] = cb)),
Expand Down

0 comments on commit e4a1f89

Please sign in to comment.