从EventStore读取流,没有“流不存在异常”

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

.net
编写的应用程序尝试使用
EventStore.Client.Grpc.Streams 23.1.0
读取事件流。逻辑如下:

  • 尝试读取流
  • 如果没有流(或流版本为0),我们可以继续并发送
    TenantCreated
    事件
  • 如果存在流(或流版本 > 0),应用程序将不会应用
    TenantCreated
    事件。

问题实际上是,当应用程序通过

_client.ReadStreamAsync
读取事件流时,如果没有流,就会抛出异常。从性能的角度来看,异常的成本很高。

即使流版本为0,如何无异常地读取流?

.net stream event-sourcing eventstoredb event-store
1个回答
0
投票

如果你检查结果中的

StreamState
,它将是
StreamNotFound

var res = conn.ReadStreamAsync(Direction.Forwards, streamName, startPosition, Int64.MaxValue, resolveLinkTos: false, cancellationToken: ct)
if (res.ReadState == ReadState.StreamNotFound)
   // TODO handle empty

春分点示例

© www.soinside.com 2019 - 2024. All rights reserved.