docker container for daemons
This commit is contained in:
@@ -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")
|
||||
|
||||
@@ -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]
|
||||
Reference in New Issue
Block a user