docker container for daemons

This commit is contained in:
2026-09-09 18:01:48 +03:00
parent 1aa3085468
commit b4e88a6ff4
7 changed files with 134 additions and 203 deletions
+7 -1
View File
@@ -9,13 +9,19 @@ class EmailProducer:
def __init__(self) -> None:
self.channel = None
self.queue = None
self.exchange = None
async def setup(self)->None:
self.channel = await rabbitmq_client.get_channel()
self.exchange = await self.channel.declare_exchange("email", aio_pika.ExchangeType.TOPIC)
welcome_queue = await self.channel.declare_queue("queue_welcome_email", durable=True, arguments={"x-queue-type": "quorum"})
await welcome_queue.bind(self.exchange, routing_key="email.welcome")
reset_queue = await self.channel.declare_queue("queue_reset_email", durable=True, arguments={"x-queue-type": "quorum"})
await reset_queue.bind(self.exchange, routing_key="email.reset")
async def send_welcome_email(self, email:str)->None:
await self._publish({"email":email}, routing_key="email.welcome")
+17 -1
View File
@@ -1,4 +1,9 @@
from pydantic_settings import SettingsConfigDict
from pydantic_settings import (
BaseSettings,
JsonConfigSettingsSource,
PydanticBaseSettingsSource,
SettingsConfigDict,
)
from src.models.configs_read.env import Base
@@ -9,4 +14,15 @@ class DaemonsConfig(Base):
model_config = SettingsConfigDict(json_file="configs/daemons.json")
@classmethod
def settings_customise_sources(
cls,
settings_cls: type[BaseSettings],
init_settings: PydanticBaseSettingsSource,
env_settings: PydanticBaseSettingsSource,
dotenv_settings: PydanticBaseSettingsSource,
file_secret_settings: PydanticBaseSettingsSource,
) -> tuple[PydanticBaseSettingsSource, ...]:
return (JsonConfigSettingsSource(settings_cls),)
daemons_config = DaemonsConfig() # type: ignore[call-arg]