Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- C#
- await using var subscription = client.SubscribeToStream(
- "some-stream",
- FromStream.Start,
- cancellationToken: ct);
- await foreach (var message in subscription.Messages.WithCancellation(ct)) {
- switch (message) {
- case StreamMessage.Event(var evnt):
- Console.WriteLine($"Received event {evnt.OriginalEventNumber}@{evnt.OriginalStreamId}");
- await HandleEvent(evnt);
- break;
- }
- }
- F#
- use subscription = client.SubscribeToStream(
- this.StreamName,
- checkpoint,
- resolveLinkTos = true)
- let asyncSubscription = AsyncSeq.ofAsyncEnum subscription.Messages
- logger.LogInformation(
- "Projection {Name} STARTED on stream {StreamName}.",
- this.Name, this.StreamName)
- do! asyncSubscription
- |> AsyncSeq.foldAsync (fun _ message ->
- async {
- match message with
- | :? StreamMessage.Event as evnt ->
- do! this.handleEvent<'TEvent> evnt.ResolvedEvent |> Async.AwaitTask
- checkpoint <- FromStream.After(evnt.ResolvedEvent.OriginalEventNumber)
- resubscriptionAttempt <- 0
- | _ -> ()
- return ()
- }) ()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement