const slowFunc = function (count) { const begin = Date.now(); // Deliberately unused variable. // eslint-disable-next-line no-unused-vars let values = _.times(count, () => _.random(0, count)); values = _.sortBy(values); return Date.now() - begin; }
async handler(ctx) { this.logger.info("Event received.", ctx.params); await this.Promise.delay(_.random(500, 2500)); this.logger.info("Post created.", ctx.params); }
hello(ctx) { if (_.random(100) > 75) return this.Promise.reject(new MoleculerError("Random error!", 510)); return `Hello from ${ctx.nodeID}`; }
async handler(ctx) { if (THROW_ERR && ctx.params.userID == 1) throw new MoleculerError("Friends is not found!", 404, "FRIENDS_NOT_FOUND", { userID: ctx.params.userID }); await this.Promise.delay(_.random(10)); return ctx.params.userID * 3; }
// Return mock error code based on commands const errorCode = cmd => { return !_.includes(cmd, 'bomb') ? 0 : _.random(1, 666); }
/** * 生成订单的编号order_sn * @returns {string} */ generateOrderNumber() { const date = new Date(); return date.getFullYear() + _.padStart(date.getMonth(), 2, '0') + _.padStart(date.getDay(), 2, '0') + _.padStart(date.getHours(), 2, '0') + _.padStart(date.getMinutes(), 2, '0') + _.padStart(date.getSeconds(), 2, '0') + _.random(100000, 999999); }
async handler(ctx) { await this.Promise.delay(_.random(500, 2500)); this.logger.info("Second called.", ctx.params); return ctx.params; }
async function start() { await main.start(); await broker1.start(); await broker2.start(); await broker3.start(); await broker4.start(); main.logger.warn("Brokers started."); main.repl(); const usernames = ["john", "bob", "adam", "steve", "mark"]; setInterval(async () => { const name = usernames[_.random(usernames.length - 1)]; await main.call("users.getAge", { name }); }, 1000); }
scale(num, opts) { if (num > this.nodes.length) { // Start new nodes this.logger.info(`Starting ${num - this.nodes.length} new nodes...`); return _.times(num - this.nodes.length, () => this.startNewNode(this.getNextNodeID())); } else if (num < this.nodes.length && num >= 0) { // Stop random nodes this.logger.info(`Stopping ${this.nodes.length - num} nodes...`); const tmp = Array.from(this.nodes); return _.times(this.nodes.length - num, () => { const idx = _.random(tmp.length - 1); const node = tmp.splice(idx, 1)[0]; if (opts.kill) return this.killNode(node); else return this.stopNode(node); }); } }
/** * Select an endpoint by sharding. * * @param {Array<Endpoint>} list * @param {Context} ctx * @returns {Endpoint} * @memberof ShardStrategy */ select(list, ctx) { let key = this.getKeyFromContext(ctx); if (key != null) { if (this.needRebuild) this.rebuild(list); const nodeID = this.getNodeIDByKey(key); if (nodeID) return list.find(ep => ep.id == nodeID); } // Return a random item (no key) return list[_.random(0, list.length - 1)]; }
_.each(posts, (post, i) => { post.id = i + 1; post.author = _.random(1, 5); });
async handler(ctx) { await this.Promise.delay(_.random(500, 2500)); this.logger.info("First called.", ctx.params); return ctx.params; }
async handler(ctx) { this.logger.info("Event received.", ctx.params); await this.Promise.delay(_.random(500, 2500)); this.logger.info("User created.", ctx.params); }
/** * 生成订单的编号order_sn * @returns {string} */ generateOrderNumber() { const date = new Date(); return date.getFullYear() + _.padStart(date.getMonth(), 2, '0') + _.padStart(date.getDay(), 2, '0') + _.padStart(date.getHours(), 2, '0') + _.padStart(date.getMinutes(), 2, '0') + _.padStart(date.getSeconds(), 2, '0') + _.random(100000, 999999); }
_.each(posts, (post, i) => { post.id = i + 1; post.author = _.random(1, 5); });