From 7c878515e950ef1babed4be374ebccbb8aaa23b0 Mon Sep 17 00:00:00 2001 From: Luna Date: Fri, 25 Oct 2019 09:38:48 -0300 Subject: [PATCH] make JobManager.spawn copy current app context --- litecord/jobs.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/litecord/jobs.py b/litecord/jobs.py index 4ad3852..4f08271 100644 --- a/litecord/jobs.py +++ b/litecord/jobs.py @@ -18,7 +18,9 @@ along with this program. If not, see . """ import asyncio +from typing import Any +from quart.ctx import copy_current_app_context from logbook import Logger log = Logger(__name__) @@ -47,9 +49,14 @@ class JobManager: def spawn(self, coro): """Spawn a given future or coroutine in the background.""" - task = self.loop.create_task(self._wrapper(coro)) + @copy_current_app_context + async def _ctx_wrapper_bg() -> Any: + return await coro + + task = self.loop.create_task(self._wrapper(_ctx_wrapper_bg())) self.jobs.append(task) + return task def close(self): """Close the job manager, cancelling all existing jobs.