Advertisement
Guest User

Untitled

a guest
Dec 11th, 2019
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.70 KB | None | 0 0
  1. import argparse
  2. import time
  3. from datetime import datetime
  4.  
  5. import pika
  6. from flockos import SendAs
  7. from flockos import chat
  8.  
  9.  
  10. def send_message_to_floke(queue_size):
  11.     # SendAs позволяет отправлять сообщение от любого имени и с какой-то картинкой в профиле
  12.     # Поищи в доках как получить bot_token и user_guid
  13.     send_as_hal = SendAs(name='HAL-9000',
  14.                          profile_image='https://pbs.twimg.com/profile_images/1788506913/HAL-MC2_400x400.png')
  15.     message_id = chat.send_message(token=bot_token, to=user_guid,
  16.                                    text=f'Queue size {queue_size} at {str(datetime.now())}',
  17.                                    send_as=send_as_hal)
  18.  
  19.  
  20. def check_queue_size(host, timeout=5):
  21.     # establish connection with RabbitMQ server
  22.     connection = pika.BlockingConnection(pika.ConnectionParameters(host))
  23.     try:
  24.         channel = connection.channel()
  25.  
  26.         channel.queue_declare(queue="task_queue", durable=True)
  27.  
  28.         while True:
  29.             rabbit_queue = channel.queue_declare(queue="task_queue", durable=True, passive=True)
  30.             queue_size = rabbit_queue.method.message_count
  31.             if queue_size > 0:
  32.                 send_message_to_floke(queue_size)
  33.                 time.sleep(timeout)
  34.     finally:
  35.         connection.close()
  36.  
  37.  
  38. if __name__ == '__main__':
  39.     parser = argparse.ArgumentParser(description='Queue size checker on host')
  40.     parser.add_argument('host', help='host address')
  41.     parser.add_argument('--timeout', help='timeout between requests')
  42.     args = parser.parse_args()
  43.  
  44.     check_queue_size(host=args.host, timeout=args.timeout)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement