Я пытаюсь создать последовательность срезов, рекурсивно считывая данные из моего источника данных.
let rec read stream startFrom (conn : IEventStoreConnection) =
seq {
let size = 10000
let slice = conn.ReadStreamEventsForwardAsync(stream, startFrom, size, true).Result
Console.WriteLine("Events in slice: " + slice.Events.Count().ToString())
if (slice.IsEndOfStream) then
yield slice
else
yield! read stream (startFrom + 1 * size) conn
}
let slices = read "stream-name" 0 conn
Console.WriteLine("TOTAL slices in sequence: " + (Seq.length slices).ToString());
Я ожидал, что последовательность будет содержать три элемента, но, похоже, она возвращает только один, последний.
Events in slice: 10000
Events in slice: 10000
Events in slice: 4501
TOTAL slices in sequence: 1
Почему результат моего рекурсивного вызова также не получен? Прицельная вещь?