ฉันกำลังพยายามสร้างลำดับของส่วนต่างๆ โดยการอ่านข้อมูลจากแหล่งข้อมูลของฉันแบบวนซ้ำ
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
เหตุใดผลลัพธ์ของการโทรซ้ำของฉันจึงไม่ได้รับผลเช่นกัน สิ่งที่กำหนดขอบเขต?