From 6eb43c5218fcaab2e51538a93776d538f9b9e7fc Mon Sep 17 00:00:00 2001 From: Jkorf Date: Fri, 11 Feb 2022 13:59:05 +0100 Subject: [PATCH] Re-added recalculation interval --- CryptoExchange.Net/Clients/RestApiClient.cs | 2 +- CryptoExchange.Net/Objects/Options.cs | 8 +++++++- CryptoExchange.Net/Objects/TimeSyncState.cs | 4 ++++ 3 files changed, 12 insertions(+), 2 deletions(-) diff --git a/CryptoExchange.Net/Clients/RestApiClient.cs b/CryptoExchange.Net/Clients/RestApiClient.cs index 7ccadc0..9fb8aed 100644 --- a/CryptoExchange.Net/Clients/RestApiClient.cs +++ b/CryptoExchange.Net/Clients/RestApiClient.cs @@ -65,7 +65,7 @@ namespace CryptoExchange.Net var timeSyncParams = GetTimeSyncInfo(); if (await timeSyncParams.TimeSyncState.Semaphore.WaitAsync(0).ConfigureAwait(false)) { - if (!timeSyncParams.SyncTime || (DateTime.UtcNow - timeSyncParams.TimeSyncState.LastSyncTime < TimeSpan.FromHours(1))) + if (!timeSyncParams.SyncTime || (DateTime.UtcNow - timeSyncParams.TimeSyncState.LastSyncTime < timeSyncParams.RecalculationInterval)) { timeSyncParams.TimeSyncState.Semaphore.Release(); return new WebCallResult(null, null, null, null, null, null, null, null, true, null); diff --git a/CryptoExchange.Net/Objects/Options.cs b/CryptoExchange.Net/Objects/Options.cs index a16ace2..a99587a 100644 --- a/CryptoExchange.Net/Objects/Options.cs +++ b/CryptoExchange.Net/Objects/Options.cs @@ -280,6 +280,11 @@ namespace CryptoExchange.Net.Objects /// public bool AutoTimestamp { get; set; } + /// + /// How often the timestamp adjustment between client and server is recalculated. If you need a very small TimeSpan here you're probably better of syncing your server time more often + /// + public TimeSpan TimestampRecalculationInterval { get; set; } = TimeSpan.FromHours(1); + /// /// ctor /// @@ -318,12 +323,13 @@ namespace CryptoExchange.Net.Objects input.RateLimiters = def.RateLimiters.ToList(); input.RateLimitingBehaviour = def.RateLimitingBehaviour; input.AutoTimestamp = def.AutoTimestamp; + input.TimestampRecalculationInterval = def.TimestampRecalculationInterval; } /// public override string ToString() { - return $"{base.ToString()}, RateLimiters: {RateLimiters?.Count}, RateLimitBehaviour: {RateLimitingBehaviour}, AutoTimestamp: {AutoTimestamp}"; + return $"{base.ToString()}, RateLimiters: {RateLimiters?.Count}, RateLimitBehaviour: {RateLimitingBehaviour}, AutoTimestamp: {AutoTimestamp}, TimestampRecalculationInterval: {TimestampRecalculationInterval}"; } } diff --git a/CryptoExchange.Net/Objects/TimeSyncState.cs b/CryptoExchange.Net/Objects/TimeSyncState.cs index 5ac63ac..81732a6 100644 --- a/CryptoExchange.Net/Objects/TimeSyncState.cs +++ b/CryptoExchange.Net/Objects/TimeSyncState.cs @@ -46,6 +46,10 @@ namespace CryptoExchange.Net.Objects /// public bool SyncTime { get; } /// + /// Timestamp recalulcation interval + /// + public TimeSpan RecalculationInterval { get; } + /// /// Time sync state for the API client /// public TimeSyncState TimeSyncState { get; }