【发布时间】:2020-02-03 17:55:05
【问题描述】:
我正在尝试在我的 Kafka 消费者中使用 Rx。
public static event EventHandler<ConsumeResult<string, string>> GenericEvent;
然后我有以下代码
var observable = Observable.FromEventPattern<ConsumeResult<string, string>>(
x => GenericEvent += x,
x => GenericEvent -= x)
.Select(x => x.EventArgs);
while (!cancellationToken.IsCancellationRequested)
{
ConsumeResult<string, string> consumeResult = _consumer.Consume(cancellationToken);
GenericEvent(consumeResult.Topic, consumeResult);
}
然后我在某处使用它
var subscription = observable.Subscribe(message =>
{
Console.WriteLine($"{Thread.CurrentThread.ManagedThreadId} ** {message.Topic}/{message.Partition} @{message.Offset}: '{message.Value}'");
//_kafkaConsumer.Commit(messages);
});
是否有可能按主题名称(consumeResult.Topic)运行单独的线程?消费者收到消息后,按主题将消息重定向到对应的线程
【问题讨论】:
标签: c# asynchronous async-await system.reactive rx.net