Подумываю использовать 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()