Skip to content

Commit f22215c

Browse files
GitHKAndrei Neagu
andauthored
🐛 rabbitmq queue name prefix is unique during the lifecycle of the container (#6365)
Co-authored-by: Andrei Neagu <[email protected]>
1 parent 9b6df59 commit f22215c

File tree

30 files changed

+138
-29
lines changed

30 files changed

+138
-29
lines changed

packages/aws-library/requirements/_base.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,9 @@ aioboto3==13.1.1
55
aiobotocore==2.13.1
66
# via aioboto3
77
aiocache==0.12.2
8-
# via -r requirements/_base.in
8+
# via
9+
# -r requirements/../../../packages/service-library/requirements/_base.in
10+
# -r requirements/_base.in
911
aiodebug==2.3.0
1012
# via -r requirements/../../../packages/service-library/requirements/_base.in
1113
aiodocker==0.22.2
@@ -174,6 +176,8 @@ protobuf==4.25.4
174176
# via
175177
# googleapis-common-protos
176178
# opentelemetry-proto
179+
psutil==6.0.0
180+
# via -r requirements/../../../packages/service-library/requirements/_base.in
177181
pydantic==1.10.17
178182
# via
179183
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt

packages/service-library/requirements/_base.in

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ opentelemetry-api
1919
opentelemetry-exporter-otlp
2020
opentelemetry-instrumentation-requests
2121
opentelemetry-sdk
22+
psutil
2223
pydantic
2324
pyinstrument
2425
pyyaml

packages/service-library/requirements/_base.txt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,8 @@ protobuf==4.25.4
138138
# via
139139
# googleapis-common-protos
140140
# opentelemetry-proto
141+
psutil==6.0.0
142+
# via -r requirements/_base.in
141143
pydantic==1.10.17
142144
# via
143145
# -c requirements/../../../packages/models-library/requirements/../../../requirements/constraints.txt

packages/service-library/requirements/_test.in

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ docker
1818
faker
1919
flaky
2020
openapi-spec-validator
21-
psutil
2221
pytest
2322
pytest-aiohttp
2423
pytest-asyncio
@@ -35,5 +34,6 @@ python-dotenv
3534
respx
3635
sqlalchemy[mypy]
3736
types_aiofiles
38-
types-psycopg2
3937
types_tqdm
38+
types-psutil
39+
types-psycopg2

packages/service-library/requirements/_test.txt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -141,8 +141,6 @@ pluggy==1.5.0
141141
# via pytest
142142
pprintpp==0.4.0
143143
# via pytest-icdiff
144-
psutil==6.0.0
145-
# via -r requirements/_test.in
146144
py-cpuinfo==9.0.0
147145
# via pytest-benchmark
148146
pytest==8.3.2
@@ -244,6 +242,8 @@ termcolor==2.4.0
244242
# via pytest-sugar
245243
types-aiofiles==24.1.0.20240626
246244
# via -r requirements/_test.in
245+
types-psutil==6.0.0.20240901
246+
# via -r requirements/_test.in
247247
types-psycopg2==2.9.21.20240819
248248
# via -r requirements/_test.in
249249
types-tqdm==4.66.0.20240417

packages/service-library/src/servicelib/rabbitmq/_utils.py

Lines changed: 9 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,10 @@
11
import logging
2+
import os
23
import socket
34
from typing import Any, Final
45

56
import aio_pika
7+
import psutil
68
from aiormq.exceptions import ChannelPreconditionFailed
79
from pydantic import NonNegativeInt
810
from tenacity import retry
@@ -51,7 +53,13 @@ async def wait_till_rabbitmq_responsive(url: str) -> bool:
5153

5254

5355
def get_rabbitmq_client_unique_name(base_name: str) -> str:
54-
return f"{base_name}_{socket.gethostname()}"
56+
# NOTE: below prefix is guaranteed to change each time the preocess restarts
57+
# Why is this desiarable?
58+
# 1. the code base makes the above assumption, otherwise subcscribers and consumers do not work
59+
# 2. enables restartability of webserver during [re]deploys
60+
prefix_create_time = f"{psutil.Process(os.getpid()).create_time()}".strip(".")[-6:]
61+
62+
return f"{base_name}_{socket.gethostname()}_{prefix_create_time}"
5563

5664

5765
async def declare_queue(

packages/simcore-sdk/requirements/_base.txt

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
aio-pika==9.4.3
22
# via -r requirements/../../../packages/service-library/requirements/_base.in
33
aiocache==0.12.2
4-
# via -r requirements/_base.in
4+
# via
5+
# -r requirements/../../../packages/service-library/requirements/_base.in
6+
# -r requirements/_base.in
57
aiodebug==2.3.0
68
# via -r requirements/../../../packages/service-library/requirements/_base.in
79
aiodocker==0.22.2
@@ -191,6 +193,8 @@ protobuf==4.25.4
191193
# via
192194
# googleapis-common-protos
193195
# opentelemetry-proto
196+
psutil==6.0.0
197+
# via -r requirements/../../../packages/service-library/requirements/_base.in
194198
psycopg2-binary==2.9.9
195199
# via
196200
# aiopg

services/api-server/requirements/_base.txt

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,10 @@ aio-pika==9.4.1
33
# -r requirements/../../../packages/service-library/requirements/_base.in
44
# -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in
55
aiocache==0.12.2
6-
# via -r requirements/../../../packages/simcore-sdk/requirements/_base.in
6+
# via
7+
# -r requirements/../../../packages/service-library/requirements/_base.in
8+
# -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in
9+
# -r requirements/../../../packages/simcore-sdk/requirements/_base.in
710
aiodebug==2.3.0
811
# via
912
# -r requirements/../../../packages/service-library/requirements/_base.in
@@ -365,6 +368,10 @@ protobuf==4.25.4
365368
# via
366369
# googleapis-common-protos
367370
# opentelemetry-proto
371+
psutil==6.0.0
372+
# via
373+
# -r requirements/../../../packages/service-library/requirements/_base.in
374+
# -r requirements/../../../packages/simcore-sdk/requirements/../../../packages/service-library/requirements/_base.in
368375
psycopg2-binary==2.9.9
369376
# via
370377
# aiopg

services/autoscaling/requirements/_base.txt

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,9 @@ aiobotocore==2.13.1
88
# via aioboto3
99
aiocache==0.12.2
1010
# via
11+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in
1112
# -r requirements/../../../packages/aws-library/requirements/_base.in
13+
# -r requirements/../../../packages/service-library/requirements/_base.in
1214
# -r requirements/_base.in
1315
aiodebug==2.3.0
1416
# via
@@ -57,6 +59,7 @@ arrow==1.3.0
5759
# -r requirements/../../../packages/aws-library/requirements/../../../packages/models-library/requirements/_base.in
5860
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
5961
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in
62+
# -r requirements/../../../packages/aws-library/requirements/_base.in
6063
# -r requirements/../../../packages/models-library/requirements/_base.in
6164
# -r requirements/../../../packages/service-library/requirements/../../../packages/models-library/requirements/_base.in
6265
# -r requirements/../../../packages/service-library/requirements/_base.in
@@ -344,9 +347,11 @@ protobuf==4.25.4
344347
# via
345348
# googleapis-common-protos
346349
# opentelemetry-proto
347-
psutil==5.9.8
350+
psutil==6.0.0
348351
# via
349352
# -c requirements/../../../services/dask-sidecar/requirements/_dask-distributed.txt
353+
# -r requirements/../../../packages/aws-library/requirements/../../../packages/service-library/requirements/_base.in
354+
# -r requirements/../../../packages/service-library/requirements/_base.in
350355
# distributed
351356
pydantic==1.10.15
352357
# via

services/autoscaling/requirements/_test.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -173,7 +173,7 @@ ply==3.11
173173
# via jsonpath-ng
174174
pprintpp==0.4.0
175175
# via pytest-icdiff
176-
psutil==5.9.8
176+
psutil==6.0.0
177177
# via
178178
# -c requirements/_base.txt
179179
# -r requirements/_test.in

0 commit comments

Comments
 (0)