Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import logging
- from multiprocessing import Process
- from zmq import Context
- from zmq.log.handlers import PUBHandler
- from zmq.backend.cython.constants import PUB
- import time
- NBR_CLIENTS = 5
- FRONTEND_PORT = '17770'
- FRONTEND_SERVER = '127.0.0.1'
- class App:
- def __init__(self):
- self.processes = []
- def spawn(self, task, *args):
- process = Process(target=task, args=args)
- self.processes.append(process)
- process.daemon = True
- process.start()
- def start(self, nbr_clients):
- for idx in range(nbr_clients):
- self.spawn(self.client_task, idx)
- for process in self.processes:
- process.join()
- @staticmethod
- def client_task(idx):
- logger = logging.getLogger()
- context = Context()
- socket = context.socket(PUB)
- socket.connect(f'tcp://{FRONTEND_SERVER}:{FRONTEND_PORT}')
- handler = PUBHandler(socket)
- logger.addHandler(handler)
- while True:
- msg = f'THIS IS A TEST MESSAGE FROM CLIENT {idx}'
- logger.setLevel(logging.DEBUG)
- logger.error(msg)
- time.sleep(5)
- def main():
- app = App()
- app.start(NBR_CLIENTS)
- if __name__ == "__main__":
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement