如果我有一个现有的生产者,我怎样才能不创建新的生产者而是使用现有的生产者?
public class FProducer<T> : ProducerBase2
{
private static readonly ObjectSerializer<T> serializer = new ObjectSerializer<T>();
public static IProducer<Null, T> producer = new ProducerBuilder<Null, T>(producerConfig).SetValueSerializer(serializer).Build();
public static async Task<DeliveryResult<Null, T>> Produce(string topic,List<T> data)
{
try
{
foreach (var item in data)
{
producer.Poll(TimeSpan.FromSeconds(5));
await producer.ProduceAsync(topic, new Message<Null, T> { Value = item });
}
}
catch (ProduceException<Null, string> ex)
{
LogManager.Logger.Fatal(ex, "Delivery failed: {reason}", ex.Error.Reason);
throw;
}
}
return null;
}
}
}
由于当前结构中的每个 api 请求都会创建一个新的生产者,因此我无法按顺序读取传入的消息。