Commit a350ed9a authored by Kento HASEGAWA's avatar Kento HASEGAWA

Use req_id to identify the processing question

parent fa33ab65
...@@ -59,6 +59,7 @@ def load_questions(): ...@@ -59,6 +59,7 @@ def load_questions():
"queue": Queue(), "queue": Queue(),
"board_size": board_size, "board_size": board_size,
"line_num": line_num, "line_num": line_num,
"last_req": None,
"answers": [], "answers": [],
} }
...@@ -112,18 +113,17 @@ def post(): ...@@ -112,18 +113,17 @@ def post():
global questions global questions
global app_args global app_args
_client = request.form["client"]
_qname = request.form["qname"] _qname = request.form["qname"]
_answer = request.form["answer"] _answer = request.form["answer"]
_cputime = request.form["cputime"]
receive_time = datetime.datetime.now() receive_time = datetime.datetime.now()
receive_time_str = receive_time.strftime("%Y%m%d%H%M%S") receive_time_str = receive_time.strftime("%Y%m%d%H%M%S")
dat = { dat = {
"client": _client, "req_id": request.form['req_id'],
"client": request.form['client'],
"answer": _answer, "answer": _answer,
"cputime": _cputime, "cputime": request.form['cputime'],
"timestamp": receive_time.strftime("%Y/%m/%d %H:%M:%S") "timestamp": receive_time.strftime("%Y/%m/%d %H:%M:%S")
} }
...@@ -218,26 +218,29 @@ def solve_questions(qname, qstr): ...@@ -218,26 +218,29 @@ def solve_questions(qname, qstr):
global clients global clients
global questions global questions
global current_seed global current_seed
global app_args
def worker(host, qname, qstr, qseed, request_time): def worker(host, qname, qstr, qseed, req_id):
_url = "http://{}/start".format(host) _url = "http://{}/start".format(host)
try: try:
r = requests.post(_url, data={"client": host, "qname": qname, "question": qstr, "qseed": qseed, "request_time": request_time}) r = requests.post(_url, data={"client": host, "qname": qname, "question": qstr, "qseed": qseed, "req_id": req_id})
client_res = json.loads(r.text) client_res = json.loads(r.text)
except Exception as e: except Exception as e:
sys.stderr.write(str(e) + "\n") sys.stderr.write(str(e) + "\n")
threads = [] threads = []
request_time = time.time() # 時刻をリクエストIDとして設定
req_id = time.time()
questions[qname]['last_req'] = req_id
for c in clients: for c in clients:
client_addr = c[0] # 問題はSolverに送る
_th = threading.Thread(name=client_addr, target=worker, args=(client_addr, qname, qstr, current_seed, request_time)) if c[1] == 'Solver':
_th.start() client_addr = c[0]
threads.append(_th) _th = threading.Thread(name=client_addr, target=worker, args=(client_addr, qname, qstr, current_seed, req_id))
current_seed += 1 _th.start()
threads.append(_th)
current_seed += 1
res = {"status": "Processed"} res = {"status": "Processed"}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment