feat: add messaging transport rollout
This commit is contained in:
@@ -40,12 +40,18 @@ class PortfolioHubConfig:
|
||||
timeout: float = 5.0
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class RabbitMQConfig:
|
||||
"""RabbitMQ transport adapter config (REQ-022, dcy-006 OQ-6)."""
|
||||
|
||||
url: str
|
||||
timeout: float = 5.0
|
||||
|
||||
|
||||
@dataclass(frozen=True)
|
||||
class DaemonConfig:
|
||||
dsn: str
|
||||
total_slots: int
|
||||
host: str
|
||||
port: int
|
||||
broker: str # 'paper' | 'kis'
|
||||
execution_interval_sec: float
|
||||
kis: Optional[KISConfig] = None
|
||||
@@ -53,6 +59,9 @@ class DaemonConfig:
|
||||
# appropriate for slice-1 paper-broker integration tests).
|
||||
portfolio_hub: Optional[PortfolioHubConfig] = None
|
||||
ledger_interval_sec: float = 1.0
|
||||
# REQ-022 (BAT-007): RabbitMQ transport config. Required by the new
|
||||
# sync+thread daemon — HTTP API has been removed (REQ-025).
|
||||
rabbitmq: Optional[RabbitMQConfig] = None
|
||||
|
||||
@staticmethod
|
||||
def from_env() -> "DaemonConfig":
|
||||
@@ -82,14 +91,20 @@ class DaemonConfig:
|
||||
token=os.environ.get("TREX_PORTFOLIO_HUB_TOKEN", "").strip(),
|
||||
timeout=float(os.environ.get("TREX_PORTFOLIO_HUB_TIMEOUT", "5")),
|
||||
)
|
||||
rabbitmq: Optional[RabbitMQConfig] = None
|
||||
mq_url = os.environ.get("TREX_RABBITMQ_URL", "").strip()
|
||||
if mq_url:
|
||||
rabbitmq = RabbitMQConfig(
|
||||
url=mq_url,
|
||||
timeout=float(os.environ.get("TREX_RABBITMQ_TIMEOUT", "5")),
|
||||
)
|
||||
return DaemonConfig(
|
||||
dsn=dsn,
|
||||
total_slots=int(os.environ.get("TREX_TOTAL_SLOTS", "10")),
|
||||
host=os.environ.get("TREX_API_HOST", "127.0.0.1"),
|
||||
port=int(os.environ.get("TREX_API_PORT", "8080")),
|
||||
broker=broker,
|
||||
execution_interval_sec=float(os.environ.get("TREX_EXECUTION_INTERVAL_SEC", "1.0")),
|
||||
kis=kis,
|
||||
portfolio_hub=portfolio_hub,
|
||||
ledger_interval_sec=float(os.environ.get("TREX_LEDGER_INTERVAL_SEC", "1.0")),
|
||||
rabbitmq=rabbitmq,
|
||||
)
|
||||
|
||||
Reference in New Issue
Block a user