结合实时和历史序列

Combining Real Time and Historical Sequence

我正在使用两种不同的 API 方法查询财务数据:

天真的方法是处理历史数据,将其作为 IObservable 流式传输,完成它,然后切换到永不完成的现实生​​活数据流:

var historicalStream = GetHistoricalData(Datetime.Now.AddHours(-1), Datetime.Now);
return historicalStream.Concat(realTimeStream);

它的问题是在处理历史流时可能会丢失一些实时数据滴答。保证不遗漏任何一个报价单(重叠数据不是问题)的最佳方法是什么?

您可以 Replay real-time 流中的所有错过的事件。

var liveStream = realTimeStream.Replay();
liveStream.Connect();

var historicalStream = GetHistoricalData(Datetime.Now.AddHours(-1), Datetime.Now);
return historicalStream.Concat(liveStream);