mirror of
https://github.com/JKorf/CryptoExchange.Net
synced 2025-06-09 17:06:19 +00:00
removed event triggering timeout
This commit is contained in:
parent
43c17bae64
commit
6a3df9f7e7
@ -1553,6 +1553,16 @@
|
|||||||
Event when the state changes
|
Event when the state changes
|
||||||
</summary>
|
</summary>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="E:CryptoExchange.Net.OrderBook.SymbolOrderBook.OnOrderBookUpdate">
|
||||||
|
<summary>
|
||||||
|
Event when orderbook was updated. Be careful! It can generate a lot of events at high-liquidity markets
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:CryptoExchange.Net.OrderBook.SymbolOrderBook.LastOrderBookUpdate">
|
||||||
|
<summary>
|
||||||
|
Should be useful for low-liquidity order-books to monitor market activity
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
<member name="P:CryptoExchange.Net.OrderBook.SymbolOrderBook.AskCount">
|
<member name="P:CryptoExchange.Net.OrderBook.SymbolOrderBook.AskCount">
|
||||||
<summary>
|
<summary>
|
||||||
The number of asks in the book
|
The number of asks in the book
|
||||||
|
@ -28,10 +28,6 @@ namespace CryptoExchange.Net.Objects
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public class OrderBookOptions : BaseOptions
|
public class OrderBookOptions : BaseOptions
|
||||||
{
|
{
|
||||||
/// <summary>
|
|
||||||
/// Update event raising timeout in milliseconds (to limit it at high-liquidity order books)
|
|
||||||
/// </summary>
|
|
||||||
public int UpdateEventTimeout { get; }
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The name of the order book implementation
|
/// The name of the order book implementation
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -46,10 +42,8 @@ namespace CryptoExchange.Net.Objects
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="name">The name of the order book implementation</param>
|
/// <param name="name">The name of the order book implementation</param>
|
||||||
/// <param name="sequencesAreConsecutive">Whether each update should have a consecutive id number. Used to identify and reconnect when numbers are skipped.</param>
|
/// <param name="sequencesAreConsecutive">Whether each update should have a consecutive id number. Used to identify and reconnect when numbers are skipped.</param>
|
||||||
/// <param name="updateInterval">Update event raising timeout in milliseconds (to limit it at high-liquidity order books)</param>
|
public OrderBookOptions(string name, bool sequencesAreConsecutive)
|
||||||
public OrderBookOptions(string name, bool sequencesAreConsecutive, int? updateInterval)
|
|
||||||
{
|
{
|
||||||
UpdateEventTimeout = updateInterval ?? 1000;
|
|
||||||
OrderBookName = name;
|
OrderBookName = name;
|
||||||
SequenceNumbersAreConsecutive = sequencesAreConsecutive;
|
SequenceNumbersAreConsecutive = sequencesAreConsecutive;
|
||||||
}
|
}
|
||||||
|
@ -72,16 +72,14 @@ namespace CryptoExchange.Net.OrderBook
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public event Action<OrderBookStatus, OrderBookStatus> OnStatusChange;
|
public event Action<OrderBookStatus, OrderBookStatus> OnStatusChange;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Event when orderbook was updated, but not more often then timeout setted in orderbook options (1000ms by default). Be careful! with small timeout it can generate a lot of events at high-liquidity order books
|
/// Event when orderbook was updated. Be careful! It can generate a lot of events at high-liquidity markets
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public event Action OnOrderBookUpdate;
|
public event Action OnOrderBookUpdate;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Should be useful for low-liquidity order-books to monitor market activity
|
/// Should be useful for low-liquidity order-books to monitor market activity
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public DateTime LastOrderBookUpdate;
|
public DateTime LastOrderBookUpdate;
|
||||||
private DateTime LastOrderBookUpdateEventTrigger;
|
|
||||||
|
|
||||||
private readonly int updateEventInterval;
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// The number of asks in the book
|
/// The number of asks in the book
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@ -149,7 +147,6 @@ namespace CryptoExchange.Net.OrderBook
|
|||||||
id = options.OrderBookName;
|
id = options.OrderBookName;
|
||||||
processBuffer = new List<ProcessBufferEntry>();
|
processBuffer = new List<ProcessBufferEntry>();
|
||||||
sequencesAreConsecutive = options.SequenceNumbersAreConsecutive;
|
sequencesAreConsecutive = options.SequenceNumbersAreConsecutive;
|
||||||
updateEventInterval = options.UpdateEventTimeout;
|
|
||||||
Symbol = symbol;
|
Symbol = symbol;
|
||||||
Status = OrderBookStatus.Disconnected;
|
Status = OrderBookStatus.Disconnected;
|
||||||
|
|
||||||
@ -272,11 +269,7 @@ namespace CryptoExchange.Net.OrderBook
|
|||||||
CheckProcessBuffer();
|
CheckProcessBuffer();
|
||||||
bookSet = true;
|
bookSet = true;
|
||||||
LastOrderBookUpdate = DateTime.UtcNow;
|
LastOrderBookUpdate = DateTime.UtcNow;
|
||||||
if ((LastOrderBookUpdate - LastOrderBookUpdateEventTrigger).TotalMilliseconds >= updateEventInterval)
|
OnOrderBookUpdate?.Invoke();
|
||||||
{
|
|
||||||
OnOrderBookUpdate?.Invoke();
|
|
||||||
LastOrderBookUpdateEventTrigger = DateTime.UtcNow;
|
|
||||||
}
|
|
||||||
log.Write(LogVerbosity.Debug, $"{id} order book {Symbol} data set: {BidCount} bids, {AskCount} asks");
|
log.Write(LogVerbosity.Debug, $"{id} order book {Symbol} data set: {BidCount} bids, {AskCount} asks");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -318,11 +311,7 @@ namespace CryptoExchange.Net.OrderBook
|
|||||||
LastSequenceNumber = lastSequenceNumber;
|
LastSequenceNumber = lastSequenceNumber;
|
||||||
CheckProcessBuffer();
|
CheckProcessBuffer();
|
||||||
LastOrderBookUpdate = DateTime.UtcNow;
|
LastOrderBookUpdate = DateTime.UtcNow;
|
||||||
if ((LastOrderBookUpdate - LastOrderBookUpdateEventTrigger).TotalMilliseconds >= updateEventInterval)
|
OnOrderBookUpdate?.Invoke();
|
||||||
{
|
|
||||||
OnOrderBookUpdate?.Invoke();
|
|
||||||
LastOrderBookUpdateEventTrigger = DateTime.UtcNow;
|
|
||||||
}
|
|
||||||
log.Write(LogVerbosity.Debug, $"{id} order book {Symbol} update: {entries.Count} entries processed");
|
log.Write(LogVerbosity.Debug, $"{id} order book {Symbol} update: {entries.Count} entries processed");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user