Browse Source

Added logging for rate limit errors

tags/docs-0.9
RogueException 9 years ago
parent
commit
6f1afcccad
2 changed files with 9 additions and 6 deletions
  1. +2
    -2
      src/Discord.Net/Net/Rest/RestClient.cs
  2. +7
    -4
      src/Discord.Net/Net/Rest/SharpRestEngine.cs

+ 2
- 2
src/Discord.Net/Net/Rest/RestClient.cs 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
} }




+ 7
- 4
src/Discord.Net/Net/Rest/SharpRestEngine.cs 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;
} }


Loading…
Cancel
Save