Skip to content

Commit 0f42081

Browse files
committed
chore: looks ok
1 parent 70bc254 commit 0f42081

3 files changed

Lines changed: 16 additions & 7 deletions

File tree

diracx-core/src/diracx/core/settings.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -380,6 +380,9 @@ class FactorySettings(ServiceSettingsBase):
380380
"""The hashed API key for the legacy exchange endpoint.
381381
"""
382382

383+
diracx_tasks_redis_url: str = "redis://localhost"
384+
"""The url for the redis server to manage tasks"""
385+
383386
enabled_services: dict[str, bool] = Field(default_factory=dict)
384387
"""The following environment variables dictates which routers are enabled."""
385388

diracx-tasks/src/diracx/tasks/task_run.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
from .plumbing._redis_types import LockCoordinator
2929

3030
DEFAULT_REDIS_URL = "redis://localhost"
31-
REDIS_URL_ENV_VAR = "DIRACX_TASKS_REDIS_URL"
31+
_factory_settings = FactorySettings()
3232

3333

3434
class DebugOptions(StrEnum):
@@ -41,7 +41,8 @@ def _get_redis_url(args: argparse.Namespace) -> str:
4141
"""Resolve Redis URL from CLI arg, env var, or default."""
4242
if hasattr(args, "redis_url") and args.redis_url:
4343
return args.redis_url
44-
return os.environ.get(REDIS_URL_ENV_VAR, DEFAULT_REDIS_URL)
44+
45+
return _factory_settings.diracx_tasks_redis_url
4546

4647

4748
def main() -> None:
@@ -108,7 +109,7 @@ def main() -> None:
108109
"--redis-url",
109110
type=str,
110111
default=None,
111-
help=f"Redis URL (default: ${REDIS_URL_ENV_VAR} or {DEFAULT_REDIS_URL})",
112+
help=f"Redis URL (default: ${{REDIS_URL_ENV_VAR}} or {DEFAULT_REDIS_URL})",
112113
)
113114
submit_parser.set_defaults(
114115
func=lambda args: asyncio.run(
@@ -133,7 +134,7 @@ def main() -> None:
133134
"--redis-url",
134135
type=str,
135136
default=None,
136-
help=f"Redis URL (default: ${REDIS_URL_ENV_VAR} or {DEFAULT_REDIS_URL})",
137+
help=f"Redis URL (default: ${{REDIS_URL_ENV_VAR}} or {DEFAULT_REDIS_URL})",
137138
)
138139
worker_parser.add_argument(
139140
"--worker-size",
@@ -160,7 +161,7 @@ def main() -> None:
160161
"--redis-url",
161162
type=str,
162163
default=None,
163-
help=f"Redis URL (default: ${REDIS_URL_ENV_VAR} or {DEFAULT_REDIS_URL})",
164+
help=f"Redis URL (default: ${{REDIS_URL_ENV_VAR}} or {DEFAULT_REDIS_URL})",
164165
)
165166
scheduler_parser.set_defaults(
166167
func=lambda args: asyncio.run(start_scheduler(redis_url=_get_redis_url(args)))
@@ -242,7 +243,7 @@ async def start_scheduler(redis_url: str) -> None:
242243
task_classes = load_task_registry()
243244

244245
config = None
245-
config_url = FactorySettings().diracx_config_backend_url
246+
config_url = _factory_settings.diracx_config_backend_url
246247
if config_url:
247248
from diracx.core.config import ConfigSource
248249

@@ -338,7 +339,7 @@ async def call_task(
338339

339340
# Try to connect to Redis for lock acquisition
340341
redis: LockCoordinator | None = None
341-
redis_url = os.environ.get(REDIS_URL_ENV_VAR)
342+
redis_url = _factory_settings.diracx_tasks_redis_url
342343
if redis_url:
343344
from redis.asyncio import Redis
344345

docs/admin/reference/env-variables.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,11 @@ The URL of the configuration backend.
2828
*Optional*, default value: \`\`
2929
The hashed API key for the legacy exchange endpoint.
3030

31+
### `DIRACX_TASKS_REDIS_URL`
32+
33+
*Optional*, default value: `redis://localhost`
34+
The url for the redis server to manage tasks
35+
3136
### `ENABLED_SERVICES`
3237

3338
*Optional*

0 commit comments

Comments
 (0)