Commit 4e2fc3df150cce5bda1ea64528eafb3d9218f724

Authored by Erickson Silva
1 parent 816cb7e5
Exists in devel

[TranslationServer] Atualiza o BD em nova thread

Showing 1 changed file with 15 additions and 9 deletions   Show diff stats
src/TranslationServer.py
@@ -5,11 +5,13 @@ from flask import Flask, request, send_file, abort @@ -5,11 +5,13 @@ from flask import Flask, request, send_file, abort
5 from functools import wraps 5 from functools import wraps
6 from PortGlosa import traduzir 6 from PortGlosa import traduzir
7 from subprocess import check_output 7 from subprocess import check_output
8 -import os, argparse 8 +from threading import Lock
  9 +import os, argparse, thread
9 10
10 RUN_MODE=None 11 RUN_MODE=None
11 BUNDLES_PATH=None 12 BUNDLES_PATH=None
12 conn=None 13 conn=None
  14 +lock = Lock()
13 app=Flask(__name__, static_url_path="", static_folder="/var/www/") 15 app=Flask(__name__, static_url_path="", static_folder="/var/www/")
14 16
15 def check_run_mode(func): 17 def check_run_mode(func):
@@ -101,18 +103,22 @@ def update_platform_db(platform_name): @@ -101,18 +103,22 @@ def update_platform_db(platform_name):
101 cursor.execute(query_string, (platform_name)); 103 cursor.execute(query_string, (platform_name));
102 conn.commit() 104 conn.commit()
103 105
  106 +def update_statistic(sign_name, sign_type, file_exists):
  107 + if RUN_MODE == "full":
  108 + with lock:
  109 + has = "YES" if file_exists else "NO"
  110 + value_sign_name = select_sign_db(sign_name)
  111 + if value_sign_name is None:
  112 + insert_sign_db(sign_name, 1, has)
  113 + else:
  114 + update_sign_db(sign_name, value_sign_name+1, has)
  115 + update_platform_db(sign_type)
  116 +
104 def check_sign(sign_name, sign_type): 117 def check_sign(sign_name, sign_type):
105 if " " in sign_name or sign_type not in BUNDLES_PATH: abort(400) 118 if " " in sign_name or sign_type not in BUNDLES_PATH: abort(400)
106 bundle_path = os.path.join(BUNDLES_PATH[sign_type], sign_name) 119 bundle_path = os.path.join(BUNDLES_PATH[sign_type], sign_name)
107 file_exists = os.path.exists(bundle_path) 120 file_exists = os.path.exists(bundle_path)
108 - if RUN_MODE == "full":  
109 - has = "YES" if file_exists else "NO"  
110 - value_sign_name = select_sign_db(sign_name)  
111 - if value_sign_name is None:  
112 - insert_sign_db(sign_name, 1, has)  
113 - else:  
114 - update_sign_db(sign_name, value_sign_name+1, has)  
115 - update_platform_db(sign_type) 121 + thread.start_new_thread(update_statistic, (sign_name, sign_type, file_exists))
116 if file_exists: 122 if file_exists:
117 return send_file(bundle_path, as_attachment=True) 123 return send_file(bundle_path, as_attachment=True)
118 abort(404) 124 abort(404)