This repository has been archived on 2020-09-24. You can view files and clone it, but cannot push or open issues or pull requests.
producer/app.py
2020-04-06 20:48:36 +02:00

52 lines
1.6 KiB
Python

#!/usr/bin/env python
import os
import random
import uuid
import logging
import sentry_sdk
import time
from communicator import Communicator
from consumerlocator import ConsumerLocator
from messagesender import MessageSender
"""
Main entry point, This module builds the producer from the submodules.
"""
__author__ = "@tormakris"
__copyright__ = "Copyright 2020, GoldenPogácsa Team"
__module_name__ = "app"
__version__text__ = "1"
sentry_sdk.init("https://3fa5ae886ba1489092ad49a93cb419c1@sentry.kmlabz.com/9")
logging.basicConfig(
level=logging.DEBUG,
format='%(asctime)s.%(msecs)03d %(levelname)s %(module)s - %(funcName)s: %(message)s',
datefmt='%Y-%m-%d %H:%M:%S',
)
LOGGER = logging.getLogger(__name__)
KNOWNCONSUMER = os.getenv("PRODUCER_KNOWNCONSUMER",'10.69.42.1')
"""
This is the producers entry point, initializes all the components (:class:'communicator.Communicator',
:class:'consumerlocator.ConsumerLocator' and :class:'messagesender.MessageSender') and sends infinite random
messages.
"""
if __name__ == "__main__":
LOGGER.info("Producer started")
generateduuid = str(uuid.uuid4())
communicator = Communicator(currentconsumer=KNOWNCONSUMER, uuid=generateduuid)
LOGGER.debug(f"My uuid is {generateduuid}")
consumerlocator = ConsumerLocator(uuid=generateduuid, communicator=communicator)
messagesender = MessageSender(communicator=communicator)
consumerlocator.learnconsumerlist()
while True:
LOGGER.info(f"Updating consumer list of {generateduuid}")
consumerlocator.updateconsumer()
LOGGER.info("Sending message to consumer")
messagesender.sendmessage()
time.sleep(random.random())