[英]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.