From f0e30b1c473d1060df39bf17e7d9bce4cadfc856 Mon Sep 17 00:00:00 2001 From: Ryu juheon Date: Wed, 5 Jan 2022 16:57:40 +0900 Subject: [PATCH] Fixed task is created again when adding the task (#2356) --- sanic/app.py | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/sanic/app.py b/sanic/app.py index 892917058d..111ee2b40e 100644 --- a/sanic/app.py +++ b/sanic/app.py @@ -1552,16 +1552,17 @@ def _loop_add_task( name: Optional[str] = None, register: bool = True, ) -> Task: - prepped = cls._prep_task(task, app, loop) - if sys.version_info == (3, 7): - if name: - error_logger.warning( - "Cannot set a name for a task when using Python 3.7. Your " - "task will be created without a name." - ) - task = loop.create_task(prepped) - else: - task = loop.create_task(prepped, name=name) + if not isinstance(task, Future): + prepped = cls._prep_task(task, app, loop) + if sys.version_info == (3, 7): + if name: + error_logger.warning( + "Cannot set a name for a task when using Python 3.7. Your " + "task will be created without a name." + ) + task = loop.create_task(prepped) + else: + task = loop.create_task(prepped, name=name) if name and register: app._task_registry[name] = task