فهرست منبع

Move snapshots to its own process that can be started by a rye script

jherve 1 سال پیش
والد
کامیت
0f6ba1e8e5
3فایلهای تغییر یافته به همراه25 افزوده شده و 11 حذف شده
  1. 1 0
      pyproject.toml
  2. 0 11
      src/de_quoi_parle_le_monde/main.py
  3. 24 0
      src/de_quoi_parle_le_monde/snapshots.py

+ 1 - 0
pyproject.toml

@@ -46,3 +46,4 @@ packages = ["src/de_quoi_parle_le_monde"]
 
 [tool.rye.scripts]
 web_server = {cmd = "hypercorn de_quoi_parle_le_monde.web:app"}
+snapshots = {call = "de_quoi_parle_le_monde.snapshots"}

+ 0 - 11
src/de_quoi_parle_le_monde/main.py

@@ -5,7 +5,6 @@ from attrs import frozen
 
 from de_quoi_parle_le_monde.http import HttpClient
 from de_quoi_parle_le_monde.storage import Storage
-from de_quoi_parle_le_monde.workers.snapshot import SnapshotJob, SnapshotWorker
 from de_quoi_parle_le_monde.workers.embeddings import (
     EmbeddingsJob,
     EmbeddingsWorker,
@@ -21,21 +20,11 @@ class Application:
 
     async def run(self):
         await asyncio.gather(
-            self._run_snapshot_worker(),
             self._run_similarity_index(),
             self._run_embeddings_worker(),
         )
         logger.info("Will quit now..")
 
-    async def _run_snapshot_worker(self):
-        logger.info("Starting snapshot service..")
-        jobs = SnapshotJob.create(10, [8, 12, 18, 22])
-
-        async with self.http_client.session() as session:
-            worker = SnapshotWorker.create(self.storage, session)
-            await asyncio.gather(*[worker.run(job) for job in jobs])
-        logger.info("Snapshot service exiting")
-
     async def _run_embeddings_worker(self):
         logger.info("Starting embeddings service..")
         jobs = await EmbeddingsJob.create(self.storage)

+ 24 - 0
src/de_quoi_parle_le_monde/snapshots.py

@@ -0,0 +1,24 @@
+import asyncio
+from loguru import logger
+
+
+from de_quoi_parle_le_monde.http import HttpClient
+from de_quoi_parle_le_monde.storage import Storage
+from de_quoi_parle_le_monde.workers.snapshot import SnapshotJob, SnapshotWorker
+
+
+async def main():
+    http_client = HttpClient()
+    storage = await Storage.create()
+
+    logger.info("Starting snapshot service..")
+    jobs = SnapshotJob.create(10, [8, 12, 18, 22])
+
+    async with http_client.session() as session:
+        worker = SnapshotWorker.create(storage, session)
+        await asyncio.gather(*[worker.run(job) for job in jobs])
+    logger.info("Snapshot service exiting")
+
+
+if __name__ == "__main__":
+    asyncio.run(main())