Сервер Flask выдает МОЕ SQL-соединение недоступно всякий раз, когда я вызываю два запроса API одновременно, и мой сервер выходит из строя.
Я не знаю, что происходит. Я также увеличиваю connect_timeout до 600, но ошибка по-прежнему выдается.
Переменные тайм-аута MySQL:
ПОКАЗАТЬ ПЕРЕМЕННЫЕ, КАК «%timeout»; SS
Это произошло только тогда, когда я вызывал несколько запросов API одновременно
Ошибка:
Ошибка, связанная с SS моего сервера Flask
p>
Мой код API.
Этот API запускает модальное окно обработки изображений в visualizer.image_processing
и вводит идентификатор обнаружения лиц в базу данных MYSQL
Код: Выделить всё
@attendance.route('/groups/mark_attendence', methods=['POST', 'GET'],)
def mark_attendence():
now = datetime.datetime.now()
image_b64 = request.get_json()['im']
group_id = request.get_json()['gid']
foldername = request.get_json()['folder_name']
session_id = request.get_json()['sessionid']
data = urllib.parse.unquote(image_b64)
data = data.split(',')[1]
imgdata = base64.b64decode(data)
filename ="imageToSave" + str(group_id) + ".jpg"
with open(filename, 'wb') as f:
f.write(imgdata)
img = cv2.imread(filename)
args = Args(folderName=foldername)
visualizer = Visualizer(args)
array_findFaces = visualizer.image_processing(img)
cursor1 = mysql.cursor()
try:
if len(array_findFaces) > 0:
for i in array_findFaces:
if(i['text'] != 'Unknown'):
cursor1.execute(
"UPDATE usersdb.sessions SET status = 1 WHERE status = 0 and sessionid = '"+ str(session_id) +"' and uid = '"+ str(student[1]) +"' ; ")
else:
print("----------------No face detected----------------")
except Exception as e :
print("exception in mark attendance")
print(e)
mysql.commit()
cursor1.close()
cursor2 = mysql.cursor()
cursor2.execute("select name, pic,status,usersdb.sessions.updated_at,uid,email from usersdb.user join usersdb.sessions on usersdb.user.id = usersdb.sessions.uid where usersdb.sessions.sessionid = '" + str(session_id) + "'")
data = cursor2.fetchall()
cursor2.close()
then = datetime.datetime.now()
print("time taken to mark attendence")
print(then - now)
finaljson = json.dumps({'Faces': array_findFaces,"Attendance":"nothing"},indent=4, sort_keys=True, default=str)
return finaljson
Код: Выделить всё
import mysql.connector
try:
mysql = mysql.connector.connect(
host="localhost",
user="root",
passwd="******",
database="usersdb")
except:
print("Error connecting to database")
Код: Выделить всё
import json
from config.db_connect import mysql // imported mysql connection
from sqlite3 import Date
import jsonpickle
from json import JSONEncoder
import flask
import os
import datetime
import numpy as np
from flask import Blueprint,request
from face_2 import Visualizer
import io
import cv2, os, base64, uuid, shutil
import urllib.parse
from PIL import Image
Код: Выделить всё
@attendance.route('/groups/markbyuid', methods=['POST'])
def mark_by_uid():
uid = request.get_json()['uid']
status = request.get_json()['status']
sessionId = request.get_json()['sessionId']
try:
cursor = mysql.cursor()
cursor.execute(" update usersdb.sessions set status = '" +str( status) + "' where uid = '" + str(uid) + "' and sessionid = '" + str(sessionId) + "' ")
mysql.commit()
cursor.close()
except Exception as e:
print('exception is here ')
print(e)
return flask.jsonify({'data': 'success'})
Более того, иногда появляется сообщение Соединение MySQL недоступно. Ошибка сегментации. Ошибка сегментации Ошибка SS и мой сервер остановлены
Почему мой сервер остановился и выдает ошибку при одновременном вызове двух API? Я много раз проверял маршруты своего API, все выглядит нормально. Напоминаем, что оба API обновляют одну и ту же таблицу базы данных
Подробнее здесь: https://stackoverflow.com/questions/745 ... ask-python