diff --git a/services/docker-compose.yml b/services/docker-compose.yml index 58d6ee70657..2f0d6748964 100644 --- a/services/docker-compose.yml +++ b/services/docker-compose.yml @@ -1249,6 +1249,7 @@ services: hostname: "sto-worker-{{.Node.Hostname}}-{{.Task.Slot}}" environment: <<: *storage_environment + STORAGE_WORKER_NAME: "sto-worker-{{.Node.Hostname}}-{{.Task.Slot}}-{{.Task.ID}}" STORAGE_WORKER_MODE: "true" CELERY_CONCURRENCY: 100 networks: *storage_networks @@ -1259,6 +1260,7 @@ services: hostname: "sto-worker-cpu-bound-{{.Node.Hostname}}-{{.Task.Slot}}" environment: <<: *storage_environment + STORAGE_WORKER_NAME: "sto-worker-cpu-bound-{{.Node.Hostname}}-{{.Task.Slot}}-{{.Task.ID}}" STORAGE_WORKER_MODE: "true" CELERY_CONCURRENCY: 1 CELERY_QUEUES: "cpu_bound" diff --git a/services/storage/docker/boot.sh b/services/storage/docker/boot.sh index 2b817f13321..1b39def4a2e 100755 --- a/services/storage/docker/boot.sh +++ b/services/storage/docker/boot.sh @@ -59,6 +59,7 @@ if [ "${STORAGE_WORKER_MODE}" = "true" ]; then worker --pool=threads \ --loglevel="${SERVER_LOG_LEVEL}" \ --concurrency="${CELERY_CONCURRENCY}" \ + --hostname="${STORAGE_WORKER_NAME}" \ --queues="${CELERY_QUEUES:-default}" else exec celery \ @@ -66,6 +67,7 @@ if [ "${STORAGE_WORKER_MODE}" = "true" ]; then worker --pool=threads \ --loglevel="${SERVER_LOG_LEVEL}" \ --concurrency="${CELERY_CONCURRENCY}" \ + --hostname="${STORAGE_WORKER_NAME}" \ --queues="${CELERY_QUEUES:-default}" fi else diff --git a/services/storage/docker/healthcheck.py b/services/storage/docker/healthcheck.py index d938c860dab..f56b1bf57e2 100755 --- a/services/storage/docker/healthcheck.py +++ b/services/storage/docker/healthcheck.py @@ -20,7 +20,6 @@ import os -import socket import subprocess import sys from urllib.request import urlopen @@ -37,6 +36,7 @@ app_settings = ApplicationSettings.create_from_envs() + def _is_celery_worker_healthy(): assert app_settings.STORAGE_CELERY broker_url = app_settings.STORAGE_CELERY.CELERY_RABBIT_BROKER.dsn @@ -50,7 +50,7 @@ def _is_celery_worker_healthy(): "inspect", "ping", "--destination", - "celery@" + socket.gethostname(), + "celery@" + os.getenv("STORAGE_WORKER_NAME", "worker"), ], capture_output=True, text=True,