-
Notifications
You must be signed in to change notification settings - Fork 0
/
consumer.py
45 lines (36 loc) · 1.29 KB
/
consumer.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import pika
import time
def main():
# Tentativa de conexão com o RabbitMQ
global connection, channel
connected = False
while not connected:
try:
connection = pika.BlockingConnection(pika.ConnectionParameters('rabbitmq'))
connected = True
except pika.exceptions.AMQPConnectionError:
print("Aguardando RabbitMQ...")
time.sleep(5)
try:
channel = connection.channel()
# Declarar uma fila chamada 'hello'
channel.queue_declare(queue='hello')
except Exception as e:
print('Failed to initialize rabbitMQ channel' + str(e))
# Função de callback para processar mensagens
def callback(ch, method, properties, body):
print(f" [x] Received {body}")
ch.basic_cancel(consumer_tag='my_consumer')
connection.close()
# Consumir mensagens da fila 'hello'
try:
channel.basic_consume(queue='hello',
on_message_callback=callback,
auto_ack=True,
consumer_tag='my_consumer')
except Exception as e:
print('Failed to consume ' + str(e))
print(' [*] Waiting for messages. To exit press CTRL+C')
channel.start_consuming()
if __name__ == "__main__":
main()