Initial timing of gateway

This commit is contained in:
Jeremy Zhang 2019-01-01 19:24:16 +00:00
parent cb6a87f73c
commit 510f801f79
2 changed files with 38 additions and 1 deletions

View File

@ -5,16 +5,20 @@ import functools
from flask import request, session from flask import request, session
import time import time
import json import json
from titanembeds.decorators import timeit
class Gateway(Namespace): class Gateway(Namespace):
@timeit
def teardown_db_session(self): def teardown_db_session(self):
time.sleep(0) time.sleep(0)
db.session.commit() db.session.commit()
db.session.remove() db.session.remove()
@timeit
def on_connect(self): def on_connect(self):
emit('hello') emit('hello')
@timeit
def on_identify(self, data): def on_identify(self, data):
time.sleep(0) time.sleep(0)
guild_id = data["guild_id"] guild_id = data["guild_id"]
@ -48,6 +52,7 @@ class Gateway(Namespace):
emit("identified") emit("identified")
self.teardown_db_session() self.teardown_db_session()
@timeit
def on_disconnect(self): def on_disconnect(self):
time.sleep(0) time.sleep(0)
if "user_keys" not in session: if "user_keys" not in session:
@ -80,6 +85,7 @@ class Gateway(Namespace):
discord_api.delete_webhook(webhook["id"], webhook["token"]) discord_api.delete_webhook(webhook["id"], webhook["token"])
self.teardown_db_session() self.teardown_db_session()
@timeit
def on_heartbeat(self, data): def on_heartbeat(self, data):
time.sleep(0) time.sleep(0)
if "socket_guild_id" not in session: if "socket_guild_id" not in session:
@ -112,6 +118,7 @@ class Gateway(Namespace):
return return
self.teardown_db_session() self.teardown_db_session()
@timeit
def on_channel_list(self, data): def on_channel_list(self, data):
time.sleep(0) time.sleep(0)
if "socket_guild_id" not in session: if "socket_guild_id" not in session:
@ -133,6 +140,7 @@ class Gateway(Namespace):
emit("channel_list", channels) emit("channel_list", channels)
self.teardown_db_session() self.teardown_db_session()
@timeit
def on_current_user_info(self, data): def on_current_user_info(self, data):
time.sleep(0) time.sleep(0)
if "socket_guild_id" not in session: if "socket_guild_id" not in session:
@ -151,6 +159,7 @@ class Gateway(Namespace):
emit("current_user_info", usr) emit("current_user_info", usr)
self.teardown_db_session() self.teardown_db_session()
@timeit
def get_user_color(self, guild_id, user_id): def get_user_color(self, guild_id, user_id):
color = None color = None
member = redisqueue.get_guild_member(guild_id, user_id) member = redisqueue.get_guild_member(guild_id, user_id)
@ -179,6 +188,7 @@ class Gateway(Namespace):
color = "0" + color color = "0" + color
return color return color
@timeit
def on_lookup_user_info(self, data): def on_lookup_user_info(self, data):
time.sleep(0) time.sleep(0)
if "socket_guild_id" not in session: if "socket_guild_id" not in session:

View File

@ -40,3 +40,30 @@ def abort_if_guild_disabled(*args):
return f(*args, **kwargs) return f(*args, **kwargs)
return decorated_function return decorated_function
return decorator return decorator
import time
import logging
from config import config
logger = logging.getLogger('myapp')
hdlr = logging.FileHandler(config["app-location"] + "/timeit.log")
formatter = logging.Formatter('%(asctime)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.CRITICAL)
def timeit(method):
def timed(*args, **kw):
ts = time.time()
result = method(*args, **kw)
te = time.time()
if 'log_time' in kw:
name = kw.get('log_name', method.__name__.upper())
kw['log_time'][name] = int((te - ts) * 1000)
else:
# print('%r %2.2f ms' % \
# (method.__name__, (te - ts) * 1000))
logger.critical('%r %2.2f ms' % \
(method.__name__, (te - ts) * 1000) + " " + str(session) + " " + str(request))
return result
return timed