Приведу инструкцию по созданию быстрого обмена сообщениями между скриптами Python с помощью RabbitMQ. RabbitMQ - это популярный брокер сообщений, который использует протокол AMQP для асинхронного обмена сообщениями.
### Установка RabbitMQ
1. Установите RabbitMQ на свою систему. Например, на Ubuntu это можно сделать так:
```sh
sudo apt-get update
sudo apt-get install rabbitmq-server
```
Для других операционных систем следуйте официальной инструкции по установке на сайте RabbitMQ.
2. После установки запустите сервер RabbitMQ:
```sh
sudo systemctl start rabbitmq-server
```
Проверьте статус сервера командой:
```sh
sudo systemctl status rabbitmq-server
```
### Настройка Python и библиотек
1. Установите библиотеку `pika`, которая является Python клиентом для RabbitMQ:
```sh
pip install pika
```
### Создание скрипта Python для отправки сообщений (producer.py)
1. Импортируйте библиотеку `pika`:
```python
import pika
```
2. Установите соединение с сервером RabbitMQ:
```python
connection = pika.BlockingConnection(pika.ConnectionParameters('localhost'))
channel = connection.channel()
```
3. Declare a queue where messages will be sent:
```python
channel.queue_declare(queue='hello')
```
4. Отправьте сообщение в очередь:
```python
message = "Hello World!"
channel.basic_publish(exchange='',
routing_key='hello',
body=message)
print(f" [x] Sent {message}")
```
5. Закройте соединение:
```python
connection.close()
```
### Создание скрипта Python для получения сообщений (consumer.py)
1. Повторите шаги 1-3 из раздела *Создание скрипта Python для отправки сообщений*.
2. Добавьте функцию обратного вызова для обработки приходящих сообщений:
```python
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
```
3. Настройте подпись на очередь и начните получать сообщения:
```python
channel.basic_consume(queue='hello',
auto_ack=True,
on_message_callback=callback)
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
```
### Запуск скриптов
1. Сначала запустите `consumer.py` чтобы начать слушать сообщения:
```sh
python consumer.py
```
2. Теперь запустите `producer.py` чтобы отправить сообщение:
```sh
python producer.py
```
Когда `producer.py` будет запущен, он отправит сообщение в очередь, и `consumer.py` должен его получить и вывести на экран.
Убедитесь, что RabbitMQ запущен и функционирует правильно, также проверьте, что сетевой порт 5672 (стандартный порт AMQP) не блокируется файрволом. Это обеспечит быстрый обмен сообщениями между скриптами Python с использованием RabbitMQ.