【发布时间】:2021-04-02 15:20:15
【问题描述】:
我的代码很幼稚:
public async Task Produce(string topic, object message, MessageHeader messageHeaders)
{
try
{
var producerClient = _EventHubProducerClientFactory.Get(topic);
var eventData = CreateEventData(message, messageHeaders);
messageHeaders.Times?.Add(DateTime.Now);
await producerClient.SendAsync(new EventData[] { eventData });
messageHeaders.Times?.Add(DateTime.Now);
//.....
Log.Info($"Milliseconds spent: {(messageHeaders.Times[1]- messageHeaders.Times[0]).TotalMilliseconds});
}
}
private EventData CreateEventData(object message, MessageHeader messageHeaders)
{
var eventData = new EventData(Encoding.UTF8.GetBytes(JsonConvert.SerializeObject(message)));
eventData.Properties.Add("CorrelationId", messageHeaders.CorrelationId);
if (messageHeaders.DateTime != null)
eventData.Properties.Add("DateTime", messageHeaders.DateTime?.ToString("s"));
if (messageHeaders.Version != null)
eventData.Properties.Add("Version", messageHeaders.Version);
return eventData;
}
在日志中我有将近 1 秒的值(~ 800 毫秒) 执行时间如此长的原因可能是什么?
【问题讨论】:
-
CreateEventData(message)中有什么 -
@PeterBons,添加到问题中
-
@IanMercer,不确定,在这种情况下我不能使用分组事件来批量发送它们,我正在缓存 EventHubProducerClient(通过 _EventHubProducerClientFactory)
标签: c# azure .net-core azure-eventhub