繁体   English   中英

如何暂停 Nest.js Kafka 消费者

[英]How to pause Nest.js Kafka consumer

我在 Nest.js 项目中使用 Kafka.js。 这就是我初始化 KafkaClient 的方式:


@Module({
...
providers: [{
      provide: 'KAFKA_CLIENT',
      useFactory: async (configService: KafkaClientConfigService) => {

        const kafkaOptions = configService.getKafkaOptions();
        return ClientProxyFactory.create(kafkaOptions);
      },
      inject: [KafkaClientConfigService],
    },
  ]
...
})

现在我将 KafkaClient 注入到我的控制器中,并且我希望使用间隔消息。 虽然有一种方法可以使用consumer.pause()在 Kafka.js 中做到这一点,但我在 KafkaClient 中找不到对此类选项的任何引用。

是否有任何选择可以通过暂停或限制消费者来做到这一点?

ClientKafka具有protected consumer财产。 在消费者本身上,您可以调用pause()resume()

为了使用这些方法,我目前正在使用自定义类扩展ClientKafka ,并将其用作提供者。

import { ClientKafka, KafkaOptions } from '@nestjs/microservices'

export class KafkaClient extends ClientKafka {
  pause() {
    this.consumer.pause()
    // ...
  }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM