Skip to content

Commit 46ac5df

Browse files
continue
1 parent 0fdd564 commit 46ac5df

File tree

3 files changed

+16
-9
lines changed

3 files changed

+16
-9
lines changed

services/storage/docker/boot.sh

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -59,9 +59,10 @@ else
5959
if [ "${STORAGE_WORKER_MODE}" = "true" ]; then
6060
exec celery \
6161
--app=simcore_service_storage.modules.celery.worker_main:app \
62-
worker \
62+
worker --pool=threads \
6363
--loglevel="${SERVER_LOG_LEVEL}" \
64-
--hostname="${HOSTNAME}"
64+
--hostname="${HOSTNAME}" \
65+
--concurrency="${CELERY_CONCURRENCY}"
6566
else
6667
exec uvicorn simcore_service_storage.main:app \
6768
--host 0.0.0.0 \

services/storage/src/simcore_service_storage/modules/celery/client.py

Lines changed: 11 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@
1010
from pydantic import ValidationError
1111
from servicelib.logging_utils import log_context
1212

13-
from .models import TaskContext, TaskID, TaskStatus, TaskUUID
13+
from .models import TaskContext, TaskID, TaskState, TaskStatus, TaskUUID
1414

1515
_logger = logging.getLogger(__name__)
1616

@@ -77,13 +77,20 @@ def get_result(self, task_context: TaskContext, task_uuid: TaskUUID) -> Any:
7777

7878
def _get_progress_report(
7979
self, task_context: TaskContext, task_uuid: TaskUUID
80-
) -> ProgressReport | None:
80+
) -> ProgressReport:
8181
task_id = _build_task_id(task_context, task_uuid)
8282
result = self._celery_app.AsyncResult(task_id).result
83-
if result:
83+
state = self._celery_app.AsyncResult(task_id).state
84+
if result and state == TaskState.RUNNING.value:
8485
with contextlib.suppress(ValidationError):
8586
return ProgressReport.model_validate(result)
86-
return None
87+
if state in (
88+
TaskState.ABORTED.value,
89+
TaskState.FAILURE.value,
90+
TaskState.SUCCESS.value,
91+
):
92+
return ProgressReport(actual_value=100.0)
93+
return ProgressReport(actual_value=0.0)
8794

8895
@make_async()
8996
def get_task_status(

services/storage/src/simcore_service_storage/modules/celery/models.py

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,7 @@
1212

1313
class TaskState(StrEnum):
1414
PENDING = auto()
15-
STARTED = auto()
16-
PROGRESS = auto()
15+
RUNNING = auto()
1716
SUCCESS = auto()
1817
FAILURE = auto()
1918
ABORTED = auto()
@@ -22,4 +21,4 @@ class TaskState(StrEnum):
2221
class TaskStatus(BaseModel):
2322
task_uuid: TaskUUID
2423
task_state: TaskState
25-
progress_report: ProgressReport | None = None
24+
progress_report: ProgressReport

0 commit comments

Comments
 (0)