@kondratev-ad

Использование Thread в Django приложении?

Подумываю использовать threading для создания подписчика на RabbitMQ в Django приложении.
При старте Django, создаю Thread с подписчиком, тем самым у меня запускается приложение Django и подписчик на RabbitMQ. Насколько это плохой/хороший метод? Сколько может жить такой Thread?

В __init__.py положил:
from pika import exceptions
from threading import Thread

def on_message(channel, method, properties, body):
    print(body)
    channel.basic_ack(delivery_tag=method.delivery_tag)

def consuming():
    while True:
        try:
            parameters = pika.URLParameters("rabbit_url.com")
            connection = pika.BlockingConnection(parameters)
            channel = connection.channel()   
            channel.basic_consume(queue="test", auto_ack=auto_ack, on_message_callback=on_message)
            channel.start_consuming()
       except exceptions.AMQPError as e:
            time.sleep(1)
            continue
        except Exception as e:
            time.sleep(1)
            continue

t = Thread(target=consuming, args=())
t.start()
  • Вопрос задан
  • 490 просмотров
Пригласить эксперта
Ответы на вопрос 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Django разрабатывался синхронным и в конкурентной среде взрывается.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы