Press n or j to go to the next uncovered block, b, p or k for the previous block.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 | 57x 57x 57x 57x 31x 31x 31x 31x 136x 136x 135x 14x 14x 14x 14x 14x 14x 14x 14x 14x 14x 121x 1x | import { MessageRateWriter } from '../common/message-rate-writer'; import { ICallback } from 'redis-smq/dist/types'; import { RedisClient } from 'redis-smq/dist/src/common/redis-client/redis-client'; import { GlobalPublishedTimeSeries } from './global-published-time-series'; import { QueuePublishedTimeSeries } from './queue-published-time-series'; import { IProducerMessageRateFields } from '../../../../types'; export class ProducerMessageRateWriter extends MessageRateWriter<IProducerMessageRateFields> { protected redisClient: RedisClient; protected globalPublishedTimeSeries: ReturnType< typeof GlobalPublishedTimeSeries >; protected queuePublishedTimeSeries: Record< string, ReturnType<typeof QueuePublishedTimeSeries> > = {}; constructor(redisClient: RedisClient) { super(); this.redisClient = redisClient; this.globalPublishedTimeSeries = GlobalPublishedTimeSeries(redisClient); } onUpdate( ts: number, rates: IProducerMessageRateFields, cb: ICallback<void>, ): void { const { publishedRate, queuePublishedRate } = rates; if (Object.keys(queuePublishedRate).length) { if (publishedRate) { const multi = this.redisClient.multi(); this.globalPublishedTimeSeries.add(ts, publishedRate, multi); for (const key in queuePublishedRate) { const value = queuePublishedRate[key]; if (value) { if (!this.queuePublishedTimeSeries[key]) { const [ns, name] = key.split(':'); this.queuePublishedTimeSeries[key] = QueuePublishedTimeSeries( this.redisClient, { ns, name }, ); } this.queuePublishedTimeSeries[key].add(ts, value, multi); } } this.redisClient.execMulti(multi, () => cb()); } else cb(); } else cb(); } } |