Skip to content

Commit 4ba3509

Browse files
author
Andrei Neagu
committed
fixed merge
1 parent cdfe157 commit 4ba3509

File tree

2 files changed

+26
-68
lines changed

2 files changed

+26
-68
lines changed

packages/service-library/src/servicelib/long_running_tasks/http_endpoint_responses.py

Lines changed: 0 additions & 63 deletions
This file was deleted.

packages/service-library/src/servicelib/long_running_tasks/lrt_api.py

Lines changed: 26 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,15 @@
1+
import logging
12
from typing import Any
23

4+
from common_library.error_codes import create_error_code
5+
from servicelib.logging_errors import create_troubleshotting_log_kwargs
6+
7+
from .errors import TaskNotCompletedError, TaskNotFoundError
38
from .models import TaskBase, TaskId, TaskStatus
49
from .task import RegisteredTaskName, TaskContext, TasksManager
510

11+
_logger = logging.getLogger(__name__)
12+
613

714
async def start_task(
815
tasks_manager: TasksManager,
@@ -67,16 +74,30 @@ def get_task_status(
6774
async def get_task_result(
6875
tasks_manager: TasksManager, task_context: TaskContext | None, task_id: TaskId
6976
) -> Any:
70-
"""retruns the result of a task, which is directly whatever the remove hanlder returned"""
7177
try:
72-
return tasks_manager.get_task_result(
73-
task_id=task_id, with_task_context=task_context
78+
task_result = tasks_manager.get_task_result(
79+
task_id, with_task_context=task_context
80+
)
81+
await tasks_manager.remove_task(
82+
task_id, with_task_context=task_context, reraise_errors=False
83+
)
84+
return task_result
85+
except (TaskNotFoundError, TaskNotCompletedError):
86+
raise
87+
except Exception as exc:
88+
_logger.exception(
89+
**create_troubleshotting_log_kwargs(
90+
user_error_msg=f"{task_id=} raised an exception",
91+
error=exc,
92+
error_code=create_error_code(exc),
93+
error_context={"task_context": task_context, "task_id": task_id},
94+
),
7495
)
75-
finally:
76-
# the task is always removed even if an error occurs
96+
# the task shall be removed in this case
7797
await tasks_manager.remove_task(
7898
task_id, with_task_context=task_context, reraise_errors=False
7999
)
100+
raise
80101

81102

82103
async def remove_task(

0 commit comments

Comments
 (0)