[TODO] Reduce processing of Discord Bot.
gunyu1019 opened this issue · comments
gunyu1019 commented
Content
커스텀 접두어 기능이 사용자의 모든 메시지를 전부 분석하는 과정에서 SQL <-> 클라이언트간 무리를 줄 수 있을 것으로 보임.
prefix = ret = self.bot.command_prefix
if callable(prefix):
ret = await discord.utils.maybe_coroutine(prefix, self, ctx)
https://github.com/gunyu1019/PUBG-BOT/blob/master/cogs/socket.py
해당 소스코드를 분석해보면 메시지가 하나 들어올때 마다 SQL 데이터 쿼리를 요청함.
Solution
- 서버별 접두어를 dict 형태의 데이터로 캐싱해두어야 함.
on_ready
이벤트가 들어 올때, 일괄적으로 데이터를 모든 서버의 접두어를 불러와서 dict 형태의 데이터로 넣어줌.on_interaction_command
이벤트가 작동할 때, 캐싱된 데이터를 기반으로 서버 데이터를 불러옴.- 사용자가 접두어를 설정할 때와 접두어 정보가 캐싱된 데이터 내에 없을 경우에만 데이터베이스에서 불러옴.
gunyu1019 commented
Kokosei J commented
그냥 레디스하셈 ㅋㅋ