检测是否已发送EventHub消息

问题描述 投票:0回答:1

我正在开发一个通过Azure Event Hub发送事件的应用程序。等待发送消息的任务,我使用ContinueWith记录事件的发送。使用Azure的防火墙规则运行时,事件已成功发送,但没有规则则不会。但是,这两种情况都会产生相同的控制台输出,告诉我事件已发送。

如何判断事件是否已成功发送到事件中心,以便程序可以相应地执行操作?

发送事件的代码:

try {
    eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());
    Task t = eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));
    await t.ContinueWith(delegate {
        log.Info($"Azure Event sent");
        });
    }
    catch (Exception e) {
    Console.WriteLine($"{DateTime.Now} > EventSender-exception {e.Message}");
    }
c# async-await azure-eventhub
1个回答
0
投票

这不是主要问题的答案,但是,因为问题是tagget async-await并且代码不遵循不将旧式.NET 4.0任务API与async-await混合的建议,这里是:

try
{
    eventHubClient = EventHubClient.CreateFromConnectionString(connectionStringBuilder.ToString());

    await eventHubClient.SendAsync(new EventData(Encoding.UTF8.GetBytes(message)));

    log.Info($"Azure Event sent");
}
catch (Exception e)
{
    Console.WriteLine($"{DateTime.Now} > EventSender-exception {e.Message}");
}
© www.soinside.com 2019 - 2024. All rights reserved.