Здравствуйте!
У меня сервер на Django и в при определенных запросах мне нужно отправлять задания на другой сервер RabbitMQ.
Делаю я это при помощи AMQP библиотеки pika (как
тут)
Для того, чтобы послать запрос на RabbitMQ при помощи pika нужно:
# создать подключение
connection = pika.BlockingConnection(pika.ConnectionParameters(host='my_IP_addres'))
# канал
channel = connection.channel()
# объявить очередь
channel.queue_declare(queue='gcm_sender')
# и послать в нее все, что душе угодно
channel.basic_publish(exchange='', routing_key='gcm_sender', body='все, что душе угодно')
Естественно, создавать подключение, канал и объявлять очередь в каждом запросе (в определенном обработчике views.py) не правильно - т.к. это это будет происходить при каждом запросе.
Очевидно, что мне нужно один раз создать подключение, канал и очередь, а во вьюхах использовать только отправку
channel.basic_publish(exchange='', routing_key='gcm_sender', body='все, что душе угодно')
Единственное, я не знаю где корректно объявлять такие глобальные объекты... Думал на счет settings.py... но все-таки это же не настройки... Так, что хотелось бы узнать ваше профессиональное мнение.
Где вы обычно объявляете глобальные объекты?
Заранее спасибо за ответ.
PS Кстати, это же относится к объекту
logger = logging.getLogger(__name__)
, пока объявляю его в views.py, сразу после import'ов...