]> git.ipfire.org Git - pakfire.git/commitdiff
daemon: Make workers async
authorMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 May 2022 10:17:19 +0000 (10:17 +0000)
committerMichael Tremer <michael.tremer@ipfire.org>
Fri, 27 May 2022 10:17:19 +0000 (10:17 +0000)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/pakfire/daemon.py

index 11815143487baedea39689bf69a0486689b0c6f8..d75769dec6faf76b152b0ab480d727d589fd8b91 100644 (file)
@@ -216,6 +216,15 @@ class Worker(multiprocessing.Process):
                # Register signal handlers
                self.register_signal_handlers()
 
+               # Run everything from here asynchronously
+               asyncio.run(self._work())
+
+               self.log.debug("Worker %s terminated gracefully" % self.pid)
+
+       async def _work(self):
+               """
+                       Called from the async IO loop doing all the work
+               """
                # Extract the job id
                job_id = self.data.get("id")
                if not job_id:
@@ -228,8 +237,6 @@ class Worker(multiprocessing.Process):
                import time
                time.sleep(10)
 
-               self.log.debug("Worker %s terminated gracefully" % self.pid)
-
        def shutdown(self):
                self.__running = False