add profiling code to test lru cache, remove js popup
This commit is contained in:
parent
c6e93f8c7f
commit
35bb6dd5fc
3 changed files with 42 additions and 6 deletions
|
@ -1,7 +1,13 @@
|
|||
import asyncio
|
||||
import atexit
|
||||
import datetime
|
||||
import socket
|
||||
from time import time
|
||||
from functools import lru_cache
|
||||
from time import sleep, time
|
||||
|
||||
import matplotlib.pyplot as plt
|
||||
import socketio
|
||||
from apscheduler.schedulers.background import BackgroundScheduler
|
||||
from flask import Flask, render_template, request
|
||||
|
||||
sio = socketio.Server()
|
||||
|
@ -19,6 +25,9 @@ app.wsgi_app = socketio.WSGIApp(sio, app.wsgi_app)
|
|||
|
||||
db = {"current_run": None, "run_start_timer": None, "run_data": {}}
|
||||
|
||||
function_times = []
|
||||
function_data = []
|
||||
|
||||
|
||||
@app.route("/")
|
||||
def index():
|
||||
|
@ -39,19 +48,24 @@ def start_run(run_index):
|
|||
|
||||
@app.route("/link/start/<run>/<link_index>")
|
||||
def link_start(run, link_index):
|
||||
start = time()
|
||||
request_data = live_request(run, link_index)
|
||||
sio.emit('live_request', request_data)
|
||||
|
||||
if db["current_run"] != run:
|
||||
return "Wrong run number, check that you update your run", 404
|
||||
response = "Wrong run number, check that you update your run", 404
|
||||
else:
|
||||
run_data = db["run_data"][run]["data"]
|
||||
if link_index in run_data:
|
||||
return "you already started in this run. Ignoring this request."
|
||||
response = "you already started in this run. Ignoring this request."
|
||||
else:
|
||||
run_data[link_index] = {"id": link_index, "start": time()}
|
||||
sio.emit('link_start', run_data[link_index])
|
||||
return "Success."
|
||||
response = "Success."
|
||||
stop = time()
|
||||
function_data.append(stop - start)
|
||||
function_times.append(len(function_times))
|
||||
return response
|
||||
|
||||
|
||||
@app.route("/link/handoff/<run>/<index>")
|
||||
|
@ -78,10 +92,31 @@ def connect(sid, data):
|
|||
def live_request(run, index):
|
||||
ip = request.remote_addr
|
||||
request_data = {}
|
||||
request_data["hostname"] = socket.gethostbyaddr(ip)[0]
|
||||
request_data["hostname"] = lookup_hostname(ip)
|
||||
request_data["time"] = time()
|
||||
return request_data
|
||||
|
||||
|
||||
@lru_cache()
|
||||
def lookup_hostname(ip):
|
||||
return socket.gethostbyaddr(ip)[0].split(".")[0]
|
||||
|
||||
|
||||
# def plot_graph():
|
||||
# try:
|
||||
# x = function_times
|
||||
# y = function_data
|
||||
|
||||
# plt.plot(x, y)
|
||||
# plt.show()
|
||||
# except:
|
||||
# pass
|
||||
|
||||
if __name__ == '__main__':
|
||||
# scheduler = BackgroundScheduler()
|
||||
# scheduler.add_job(func=plot_graph, trigger="interval", seconds=5)
|
||||
# scheduler.start()
|
||||
app.run(host="0.0.0.0", debug=True)
|
||||
|
||||
# shut down the scheduler when exiting the app
|
||||
# atexit.register(lambda: scheduler.shutdown())
|
||||
|
|
|
@ -1,2 +1,4 @@
|
|||
flask
|
||||
python-socketio
|
||||
apscheduler
|
||||
matplotlib
|
||||
|
|
|
@ -51,7 +51,6 @@ require(['jquery', 'socket.io'], function(jq, io) {
|
|||
});
|
||||
|
||||
function addLiveRequest(request_host, request_time) {
|
||||
alert("yes");
|
||||
let hostname = request_host;
|
||||
let timesting = request_time.getHours() + ":" + request_time.getMinutes();
|
||||
|
||||
|
|
Loading…
Reference in a new issue