All files / redis-smq-api/src/plugins/message-rate producer-message-rate-plugin.ts

100% Statements 9/9
100% Branches 0/0
100% Functions 3/3
100% Lines 9/9

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    57x 57x 57x     57x       29x 29x 29x 32x         29x      
import { ICallback, IPlugin } from 'redis-smq/dist/types';
import { RedisClient } from 'redis-smq/dist/src/common/redis-client/redis-client';
import { events } from 'redis-smq/dist/src/common/events';
import { ProducerMessageRate } from './producer/producer-message-rate';
import { ProducerMessageRateWriter } from './producer/producer-message-rate-writer';
import { Message, Producer } from 'redis-smq';
 
export class ProducerMessageRatePlugin implements IPlugin {
  protected producerMessageRate: ProducerMessageRate;
 
  constructor(redisClient: RedisClient, producer: Producer) {
    const writer = new ProducerMessageRateWriter(redisClient);
    this.producerMessageRate = new ProducerMessageRate(writer);
    producer.on(events.MESSAGE_PUBLISHED, (message: Message) => {
      this.producerMessageRate.incrementPublished(message.getRequiredQueue());
    });
  }
 
  quit(cb: ICallback<void>): void {
    this.producerMessageRate.quit(cb);
  }
}