db_kyc_project/backend/misc/celery/deliver_setting.py

21 lines
835 B
Python
Raw Normal View History

2024-12-10 23:31:35 +03:00
from kombu import Connection, Producer, Queue
from django.conf import settings
from clicker.celery import app
from misc.models import Setting
@app.task(autoretry_for=(Exception,), retry_backoff=True)
2025-05-31 16:15:06 +03:00
def deliver_setting(setting):
2024-12-10 23:31:35 +03:00
rabbitmq_conf = settings.RABBITMQ
dsn = f'{rabbitmq_conf["PROTOCOL"]}://{rabbitmq_conf["USER"]}:{rabbitmq_conf["PASSWORD"]}@{rabbitmq_conf["HOST"]}:{rabbitmq_conf["PORT"]}/'
2024-12-14 08:52:01 +03:00
queue = Queue(settings.SETTINGS_QUEUE_NAME, exchange='', routing_key=settings.SETTINGS_QUEUE_NAME, durable=True)
2024-12-10 23:31:35 +03:00
with Connection(dsn) as conn:
with conn.channel() as channel:
producer = Producer(channel)
producer.publish(
2025-05-31 16:15:06 +03:00
setting,
2024-12-10 23:31:35 +03:00
exchange='',
routing_key=settings.SETTINGS_QUEUE_NAME,
2024-12-14 08:52:01 +03:00
declare=[queue],
2024-12-10 23:31:35 +03:00
)