【发布时间】:2022-01-03 22:48:26
【问题描述】:
我有一个场景,我需要发布EventGridTopicEvent 数据,同时我需要将此事件信息存储在 Azure 存储表中。我想知道如果发布事件是否成功完成(任何错误),是否有任何方法可以获取信息(如 T/F),如果发布成功,那么只有我应该将数据保存到表存储中。
我需要通过 C# Event Handler(Mediator) 处理上述逻辑,我尝试使用 C#TransactionScope,但它没有像 Rollback 这样的机制。如果事件未发布,则回滚事件以及不在表存储中存储任何内容,否则我不应该调用来处理数据库事务。
我也尝试过_mediator.Publish(request).IsCompletedSuccessfully,但即使我传递了无效的请求数据,它也始终为真。
代码sn-p
public async Task<Result<Response<XYZ>>> Handle(EventGridTopicEvent request, CancellationToken cancellationToken)
{
using TransactionScope transactionScope = new TransactionScope();
{
try
{
bool eventPublishStatus = _mediator.Publish(request).IsCompletedSuccessfully;
if (eventPublishStatus)
{
//Insert request data to Table storage
}
}
}
}
【问题讨论】:
-
请包含将数据发布到事件网格的请求的处理程序。
-
您的问题不包含您遇到的实际错误,并且缺少可用于给出结论性答案的详细信息。我确实试图提供一个,请看一下。
标签: c# azure event-handling