Forráskód Böngészése

ugly but useful(?)

lyc8503 3 éve
szülő
commit
7fe5bd408b
2 módosított fájl, 41 hozzáadás és 44 törlés
  1. 17 26
      backend_refactor/app.py
  2. 24 18
      backend_refactor/pool/thread_pool.py

+ 17 - 26
backend_refactor/app.py

@@ -12,39 +12,30 @@ from db import db
 from route.util import make_response
 from pool.thread_pool import init_workers
 
+app = Flask(__name__)
 
-def create_app():
-    logging.info("Creating and initializing app...")
+cors = CORS(app, resources={r"/*": {"origins": "*"}})
 
-    try:
-        os.mkdir(UPLOAD_DIR + "/result")
-    except:
-        pass
+app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH
 
-    app = Flask(__name__)
+app.config['SQLALCHEMY_DATABASE_URI'] = MYSQL_URI
+app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
 
-    init_workers()
+app.register_blueprint(route.upload.bp, url_prefix=VERSION_PREFIX)
+app.register_blueprint(route.analyze.bp, url_prefix=VERSION_PREFIX)
+app.register_blueprint(route.result.bp, url_prefix=VERSION_PREFIX)
 
-    cors = CORS(app, resources={r"/*": {"origins": "*"}})
+db.init_app(app)
+with app.app_context():
+    # db.drop_all()
+    db.create_all()
 
-    app.config['MAX_CONTENT_LENGTH'] = MAX_CONTENT_LENGTH
+init_workers()
 
-    app.config['SQLALCHEMY_DATABASE_URI'] = MYSQL_URI
-    app.config['SQLALCHEMY_TRACK_MODIFICATIONS'] = False
-
-    app.register_blueprint(route.upload.bp, url_prefix=VERSION_PREFIX)
-    app.register_blueprint(route.analyze.bp, url_prefix=VERSION_PREFIX)
-    app.register_blueprint(route.result.bp, url_prefix=VERSION_PREFIX)
-
-    db.init_app(app)
-    with app.app_context():
-        # db.drop_all()
-        db.create_all()
-
-    return app
-
-
-app = create_app()
+try:
+    os.mkdir(UPLOAD_DIR + "/result")
+except:
+    pass
 
 
 @app.route("/")

+ 24 - 18
backend_refactor/pool/thread_pool.py

@@ -1,29 +1,35 @@
 import threading
 import queue
 import logging
+import functools
 
 q = queue.Queue()
 
+
 def worker():
-	while True:
-		try:
-			task = q.get()
-			logging.debug(f"Working on {task}")
-			job, callback = task
-			job(callback)
-			logging.debug(f"Working on {task} done.")
-			q.task_done()
-		except Exception as e:
-			logging.debug("error:", exc_info=e)
-			raise e
-
-
-def init_workers(count=2):	
-	for _ in range(count):
-		threading.Thread(target=worker).start()
+    while True:
+        try:
+            task = q.get()
+            logging.debug(f"Working on {task}")
+            job, callback = task
+            job(callback)
+            logging.debug(f"Working on {task} done.")
+            q.task_done()
+        except Exception as e:
+            logging.debug("error:", exc_info=e)
+            raise e
+
+
+@functools.cache
+def init_workers(count=2):
+    logging.info("Initializing workers...")
+    for _ in range(count):
+        threading.Thread(target=worker).start()
+
 
 class Pool:
-	def submit(self, job, callback):
-		q.put((job, callback))
+    def submit(self, job, callback):
+        q.put((job, callback))
+
 
 pool = Pool()