Added logging for rate limit errors

This commit is contained in:
RogueException
2015-12-24 00:07:40 -04:00
parent 96b5337da7
commit 6f1afcccad
2 changed files with 9 additions and 6 deletions

View File

@@ -49,9 +49,9 @@ namespace Discord.Net.Rest
Logger = logger; Logger = logger;
#if !DOTNET5_4 #if !DOTNET5_4
_engine = new RestSharpEngine(config, baseUrl); _engine = new RestSharpEngine(config, baseUrl, logger);
#else #else
//_engine = new BuiltInRestEngine(config, baseUrl); //_engine = new BuiltInRestEngine(config, baseUrl, logger);
#endif #endif
} }

View File

@@ -1,4 +1,5 @@
#if !DOTNET5_4 #if !DOTNET5_4
using Discord.Logging;
using RestSharp; using RestSharp;
using System; using System;
using System.IO; using System.IO;
@@ -16,7 +17,9 @@ namespace Discord.Net.Rest
private readonly object _rateLimitLock; private readonly object _rateLimitLock;
private DateTime _rateLimitTime; private DateTime _rateLimitTime;
public RestSharpEngine(DiscordConfig config, string baseUrl) internal Logger Logger { get; }
public RestSharpEngine(DiscordConfig config, string baseUrl, Logger logger)
{ {
_config = config; _config = config;
_rateLimitLock = new object(); _rateLimitLock = new object();
@@ -78,7 +81,7 @@ namespace Discord.Net.Rest
int milliseconds; int milliseconds;
if (retryAfter != null && int.TryParse((string)retryAfter.Value, out milliseconds)) if (retryAfter != null && int.TryParse((string)retryAfter.Value, out milliseconds))
{ {
/*var now = DateTime.UtcNow; var now = DateTime.UtcNow;
if (now >= _rateLimitTime) if (now >= _rateLimitTime)
{ {
lock (_rateLimitLock) lock (_rateLimitLock)
@@ -86,10 +89,10 @@ namespace Discord.Net.Rest
if (now >= _rateLimitTime) if (now >= _rateLimitTime)
{ {
_rateLimitTime = now.AddMilliseconds(milliseconds); _rateLimitTime = now.AddMilliseconds(milliseconds);
_logger.Warning($"Rate limit hit, waiting {Math.Round(milliseconds / 1000.0f, 2)} seconds"); Logger.Warning($"Rate limit hit, waiting {Math.Round(milliseconds / 1000.0f, 2)} seconds");
} }
} }
}*/ }
await Task.Delay(milliseconds, cancelToken).ConfigureAwait(false); await Task.Delay(milliseconds, cancelToken).ConfigureAwait(false);
continue; continue;
} }