HealthView'da status kod qo'shildi; RabbitMQ ulanishi qo'shildi; .gitignore yaratildi.

This commit is contained in:
A'zamov Samandar
2025-04-21 19:53:10 +05:00
parent 5a38d016a8
commit 80fa39bd1b
9 changed files with 83 additions and 20 deletions

View File

@@ -1,6 +1,8 @@
from datetime import datetime, timedelta
from django_core import exceptions, models, tasks
from django_core import exceptions, models
from core.utils.notification import send_notification
from config.env import env
class SmsService:
@@ -28,7 +30,8 @@ class SmsService:
) # noqa
sms_confirm.save()
tasks.SendConfirm.delay(phone, code)
# tasks.SendConfirm.delay(phone, code)
send_notification({'type': 'sms', 'message': env.str("SMS_TEMPLATE") % {"code": code}, "to": [phone]})
return True
@staticmethod

View File

@@ -0,0 +1,21 @@
# rabbitmq.py
from kombu import Exchange, Producer
from .rabbitmq import get_connection
_channel = None
_exchange = Exchange('notification', type='direct')
_producer = None
def get_producer():
global _producer, _channel
if _producer is None:
conn = get_connection()
_channel = conn.channel()
_producer = Producer(_channel, exchange=_exchange, routing_key="notification")
return _producer
def send_notification(message: dict):
producer = get_producer()
producer.publish(message, serializer='json')

View File

@@ -0,0 +1,15 @@
# rabbitmq.py
from kombu import Connection
rabbit_url = 'amqp://guest:guest@rabbitmq:5672/'
_connection = None
def get_connection():
global _connection
if _connection is None or not _connection.connected:
_connection = Connection(rabbit_url)
_connection.ensure_connection(max_retries=3)
return _connection