diff --git a/.gitignore b/.gitignore index 3d509c5..41df06c 100644 --- a/.gitignore +++ b/.gitignore @@ -22,6 +22,8 @@ Thumbs.db #db *.db DB/ +#rabbitmq +RTMQ/ #logs logs/ diff --git a/configs/.env.example b/configs/.env.example index e20e27c..27b7172 100644 --- a/configs/.env.example +++ b/configs/.env.example @@ -13,4 +13,10 @@ REDIS_PASSWORD="change_me" REDIS_PORT=change_me #int REDIS_HOST="change_me" + +RABBITMQ_PASSWORD="change_me" +RABBITMQ_LOGIN="change_me" +RABBITMQ_PORT=change_me #int +RABBITMQ_PORT_UI=chane_me #int + PROD_MODE=bool \ No newline at end of file diff --git a/docker/compose-dev.yaml b/docker/compose-dev.yaml index 3626ae1..67bdc00 100644 --- a/docker/compose-dev.yaml +++ b/docker/compose-dev.yaml @@ -39,6 +39,8 @@ services: condition: service_healthy redis: condition: service_healthy + rabbitmq: + condition: service_healthy ports: - "80:8000" entrypoint: ["./entrypoint.sh", "--dev"] @@ -76,11 +78,13 @@ services: condition: service_healthy redis: condition: service_healthy + rabbitmq: + condition: service_healthy ports: - "80:8000" psql: - profiles: ["prod", "dev", "db"] + profiles: ["prod", "dev", "local"] image: postgres:16-alpine container_name: psql init: true @@ -106,7 +110,7 @@ services: redis: image: redis:latest - profiles: ["prod", "dev", "redis"] + profiles: ["prod", "dev", "local"] container_name: redis init: true ipc: private @@ -121,6 +125,31 @@ services: restart: unless-stopped networks: - backend + + rabbitmq: + image: rabbitmq:3-management-alpine + profiles: ["prod", "dev", "local"] + container_name: rabbitmq_broker + restart: always + init: true + ipc: private + environment: + - RABBITMQ_DEFAULT_USER=${RABBITMQ_LOGIN} + - RABBITMQ_DEFAULT_PASS=${RABBITMQ_PASSWORD} + ports: + - "${RABBITMQ_PORT}:5672" + - "${RABBITMQ_PORT_UI}:15672" + volumes: + - type: bind + source: ../RTMQ + target: /var/lib/rabbitmq + healthcheck: + test: ["CMD", "rabbitmq-diagnostics", "check_port_connectivity"] + interval: 10s + timeout: 5s + retries: 5 + networks: + - backend networks: backend: diff --git a/makefile b/makefile index a7cd129..239de41 100644 --- a/makefile +++ b/makefile @@ -17,11 +17,11 @@ help: ## .PHONY: run run: ## Run dev local application - docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile db --profile redis up -d && ${VENV} uvicorn main:app --host 0.0.0.0 --port 8000 --reload + docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile local up -d && ${VENV} uvicorn main:app --host 0.0.0.0 --port 8000 --reload .PHONY: down down: ## Down dev local db - docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile db --profile redis down + docker compose -f docker/compose-dev.yaml --env-file configs/.env --profile local down .PHONY: run-dev run-dev: ## Run dev application diff --git a/src/messaging/__init__.py b/src/messaging/__init__.py new file mode 100644 index 0000000..73d04e6 --- /dev/null +++ b/src/messaging/__init__.py @@ -0,0 +1 @@ +# rabbitmq code \ No newline at end of file diff --git a/src/messaging/consumers/consumers.py b/src/messaging/consumers/consumers.py new file mode 100644 index 0000000..e69de29 diff --git a/src/messaging/producers/producers.py b/src/messaging/producers/producers.py new file mode 100644 index 0000000..e69de29 diff --git a/src/messaging/queue/queue.py b/src/messaging/queue/queue.py new file mode 100644 index 0000000..e69de29 diff --git a/src/messaging/rabbitmq/rabbitmq.py b/src/messaging/rabbitmq/rabbitmq.py new file mode 100644 index 0000000..e69de29