Relinquish resources to the bot every 10 publishes in redisqueue

This commit is contained in:
Jeremy Zhang 2019-01-06 00:08:12 +00:00
parent e566276fc4
commit 57d0a74621

View File

@ -36,11 +36,17 @@ class RedisQueue:
await self.bot.wait_until_ready() await self.bot.wait_until_ready()
subscriber = await self.sub_connection.start_subscribe() subscriber = await self.sub_connection.start_subscribe()
await subscriber.subscribe(["discord-api-req"]) await subscriber.subscribe(["discord-api-req"])
count = 0
while True: while True:
reply = await subscriber.next_published() reply = await subscriber.next_published()
request = json.loads(reply.value) request = json.loads(reply.value)
resource = request["resource"] resource = request["resource"]
self.dispatch(resource, request["key"], request["params"]) self.dispatch(resource, request["key"], request["params"])
count = count + 1
if count > 10:
count = 0
elif count == 10:
await asyncio.sleep(0)
def dispatch(self, event, key, params): def dispatch(self, event, key, params):
method = "on_" + event method = "on_" + event