aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar MarkKoz <[email protected]>2019-12-08 23:40:17 -0800
committerGravatar MarkKoz <[email protected]>2019-12-08 23:49:11 -0800
commitdbd7220caed5a6ba759d0cf9efaa0c0c0e57f391 (patch)
treeb3007fd961349b57ed6ea08b66016909889549c2
parentFix test failures for setup log messages (diff)
Use the AsyncResolver for APIClient and discord.py sessions too
Active thread counts are observed to be lower with it in use.
-rw-r--r--bot/bot.py22
1 files changed, 11 insertions, 11 deletions
diff --git a/bot/bot.py b/bot/bot.py
index 4b3b991a3..8f808272f 100644
--- a/bot/bot.py
+++ b/bot/bot.py
@@ -14,10 +14,18 @@ class Bot(commands.Bot):
"""A subclass of `discord.ext.commands.Bot` with an aiohttp session and an API client."""
def __init__(self, *args, **kwargs):
- super().__init__(*args, **kwargs)
+ # Use asyncio for DNS resolution instead of threads so threads aren't spammed.
+ # Use AF_INET as its socket family to prevent HTTPS related problems both locally
+ # and in production.
+ self.connector = aiohttp.TCPConnector(
+ resolver=aiohttp.AsyncResolver(),
+ family=socket.AF_INET,
+ )
+
+ super().__init__(*args, connector=self.connector, **kwargs)
self.http_session: Optional[aiohttp.ClientSession] = None
- self.api_client = api.APIClient(loop=self.loop)
+ self.api_client = api.APIClient(loop=self.loop, connector=self.connector)
log.addHandler(api.APILoggingHandler(self.api_client))
@@ -40,14 +48,6 @@ class Bot(commands.Bot):
async def start(self, *args, **kwargs) -> None:
"""Open an aiohttp session before logging in and connecting to Discord."""
- # Global aiohttp session for all cogs
- # - Uses asyncio for DNS resolution instead of threads, so we don't spam threads
- # - Uses AF_INET as its socket family to prevent https related problems both locally and in prod.
- self.http_session = aiohttp.ClientSession(
- connector=aiohttp.TCPConnector(
- resolver=aiohttp.AsyncResolver(),
- family=socket.AF_INET,
- )
- )
+ self.http_session = aiohttp.ClientSession(connector=self.connector)
await super().start(*args, **kwargs)