forked from Alexey/DAS_2024_1
45 lines
1.1 KiB
Python
45 lines
1.1 KiB
Python
|
import sys
|
||
|
from datetime import datetime
|
||
|
|
||
|
import pika
|
||
|
|
||
|
_QUEUE_NAME = "vk_messages_queue"
|
||
|
_EXCHANGE_NAME = "vk_messages"
|
||
|
|
||
|
|
||
|
def main():
|
||
|
connection = pika.BlockingConnection(pika.ConnectionParameters(host='localhost'))
|
||
|
channel = connection.channel()
|
||
|
|
||
|
channel.exchange_declare(
|
||
|
exchange=_EXCHANGE_NAME,
|
||
|
exchange_type='fanout'
|
||
|
)
|
||
|
|
||
|
channel.queue_declare(queue=_QUEUE_NAME, exclusive=True)
|
||
|
channel.queue_bind(exchange=_EXCHANGE_NAME, queue=_QUEUE_NAME)
|
||
|
|
||
|
def callback(ch, method, properties, body):
|
||
|
now = datetime.now()
|
||
|
current_time = now.strftime("%H:%M:%S")
|
||
|
|
||
|
print(f"[vkReader] Received [{str(body)}] in [{current_time}]")
|
||
|
ch.basic_ack(delivery_tag=method.delivery_tag)
|
||
|
|
||
|
channel.basic_consume(
|
||
|
queue=_QUEUE_NAME,
|
||
|
on_message_callback=callback,
|
||
|
auto_ack=False
|
||
|
)
|
||
|
|
||
|
print('[*] Waiting for messages. To exit press CTRL+C')
|
||
|
channel.start_consuming()
|
||
|
|
||
|
|
||
|
if __name__ == '__main__':
|
||
|
try:
|
||
|
main()
|
||
|
except KeyboardInterrupt:
|
||
|
print('Interrupted')
|
||
|
sys.exit(0)
|