2021-06-09 14:22:10 +00:00
|
|
|
|
using System.Net.Http;
|
|
|
|
|
using System.Threading.Tasks;
|
|
|
|
|
|
|
|
|
|
using Serilog;
|
|
|
|
|
|
|
|
|
|
namespace Myriad.Gateway.Limit
|
|
|
|
|
{
|
|
|
|
|
public class TwilightGatewayRatelimiter: IGatewayRatelimiter
|
|
|
|
|
{
|
|
|
|
|
private readonly string _url;
|
|
|
|
|
private readonly ILogger _logger;
|
|
|
|
|
private readonly HttpClient _httpClient = new();
|
|
|
|
|
|
|
|
|
|
public TwilightGatewayRatelimiter(ILogger logger, string url)
|
|
|
|
|
{
|
|
|
|
|
_url = url;
|
2021-06-10 12:21:05 +00:00
|
|
|
|
_logger = logger.ForContext<TwilightGatewayRatelimiter>();
|
2021-06-09 14:22:10 +00:00
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public async Task Identify(int shard)
|
|
|
|
|
{
|
|
|
|
|
// Literally just request and wait :p
|
|
|
|
|
_logger.Information("Shard {ShardId}: Requesting identify at gateway queue {GatewayQueueUrl}", shard, _url);
|
|
|
|
|
await _httpClient.GetAsync(_url);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|