ApacheKafka—有没有一种更适合使用tpl的代码的方式?

ljsrvy3e  于 2021-06-07  发布在  Kafka
关注(0)|答案(1)|浏览(363)

我正在把下面的c代码转换成f代码(https://github.com/confluentinc/confluent-kafka-dotnet/blob/master/examples/avrogeneric/program.cs)

var consumeTask = Task.Factory.StartNew(() =>
{
    while (true)
    {
        consumer.Poll(100);
    }
});

consumeTask.Wait();

它应该被替换为 Async 工作流?顺便问一下,这是一种不使用 Poll ?

2mbi3lxu

2mbi3lxu1#

要了解Kafka的更为地道的用法,请查看jet.com上的kafunk库。它有一个很好的f#api Package 了汇合的.netKafka库,以我的经验来看,它的性能也相当好。
对于第三方物流任务,您可以以大致相同的方式使用异步工作流:

let poller = 
    async {
        while true do
            consumer.Poll 100
    }

poller |> Async.Start

如果你想使用 Task 在异步工作流中,可以使用 Async.AwaitTak ,也可以使用自定义工作流将它们混合在一起,如下面的工作流。

相关问题