Я пытаюсь сделать одно из применений колбы нашего проекта в качестве реентера.Я попробовал приведенный ниже код, но блокировки иногда зависают.Могу ли я узнать, в чем проблема с функциональностью блокировки и повторного входа ниже?
lock = threading.RLock()
@app.route('/fileAnalysis', methods=['POST'])
def fileAnalysis():
try:
lock.acquire()
data_1 = request.get_json(force=True)
lock.release()
return fileAnalysis_1(data_1)
except Exception as e:
return str(e)
def fileAnalysis_1(data):
try:
file_content= data['file_content']
from keras import backend as K
K.clear_session()
file_classifier = load_model('file_classifier.h5')
file_classifier.compile(optimizer='adam', loss='binary_crossentropy', metrics=['accuracy'])
with open('file_content_encoder.pickle', 'rb') as handle:
file_content_encoder= pickle.load(handle)
with open('onehotencoder_y.pickle', 'rb') as handle:
onehotencoder_y = pickle.load(handle)
file_content = data['file_content']
file_content = file_content.strip()
transformed_file_content = file_content_encoder.transform([file_content]).toarray()
result = file_classifier.predict(transformed_file_content)
prediction_probablity_matrix = file_classifier.predict_proba(transformed_file_content)
maximum_predicted_value = np.amax(prediction_probablity_matrix) * 100
y_pred=onehotencoder_y.inverse_transform(result)
if maximum_predicted_value >= 99:
output=y_pred
else:
output=0
out = {
"attached": output
}
return json.dumps(out)
except Exception as e:
return str(e)
if __name__ == '__main__':
app.run(debug=True)