Selaa lähdekoodia

[wip?] Move web server worker to its own file

jherve 1 vuosi sitten
vanhempi
commit
83c38d48f5
2 muutettua tiedostoa jossa 23 lisäystä ja 18 poistoa
  1. 1 18
      src/media_observer/__main__.py
  2. 22 0
      src/media_observer/web.py

+ 1 - 18
src/media_observer/__main__.py

@@ -1,8 +1,6 @@
 import asyncio
 from loguru import logger
 from attrs import frozen
-from hypercorn.asyncio import serve
-from hypercorn.config import Config
 
 from media_observer.worker import Worker
 from media_observer.embeddings import EmbeddingsWorker
@@ -20,22 +18,7 @@ from media_observer.snapshots import (
 )
 from media_observer.similarity_index import SimilarityIndexWorker
 from media_observer.storage import Storage
-from media_observer.web import app
-
-
-@frozen
-class WebServer(Worker):
-    async def run(self):
-        shutdown_event = asyncio.Event()
-
-        try:
-            logger.info("Web server stuff")
-            # Just setting the shutdown_trigger even though it is not connected
-            # to anything allows the app to gracefully shutdown
-            await serve(app, Config(), shutdown_trigger=shutdown_event.wait)
-        except asyncio.CancelledError:
-            logger.warning("Web server exiting")
-            return
+from media_observer.web import WebServer
 
 
 @frozen

+ 22 - 0
src/media_observer/web.py

@@ -1,4 +1,6 @@
+import asyncio
 from datetime import datetime, timedelta
+from attrs import frozen
 from fastapi import FastAPI, Request, Depends
 from fastapi.responses import HTMLResponse
 from fastapi.staticfiles import StaticFiles
@@ -8,9 +10,14 @@ from babel import Locale
 import humanize
 from zoneinfo import ZoneInfo
 
+from hypercorn.asyncio import serve
+from hypercorn.config import Config
+from loguru import logger
+
 from media_observer.medias import media_collection
 from media_observer.storage import Storage
 from media_observer.similarity_index import SimilaritySearch
+from media_observer.worker import Worker
 
 
 def add_date_processing(_any):
@@ -178,3 +185,18 @@ async def site_main_article_frontpage(
             ),
         },
     )
+
+
+@frozen
+class WebServer(Worker):
+    async def run(self):
+        shutdown_event = asyncio.Event()
+
+        try:
+            logger.info("Web server stuff")
+            # Just setting the shutdown_trigger even though it is not connected
+            # to anything allows the app to gracefully shutdown
+            await serve(app, Config(), shutdown_trigger=shutdown_event.wait)
+        except asyncio.CancelledError:
+            logger.warning("Web server exiting")
+            return