Newer
Older
#!/usr/bin/env python3
import multiprocessing
import os
from multiprocessing.managers import BaseManager
PORT = 7481
KEY = b'AiZa5Uavcoh3PiajvaeTee5z' # keep it secret, keep it safe !
class QueueManager(BaseManager):
"""This Manager holds a Queue and waits for clients to use it."""
pass
class QueueClient:
"""Base class for users of the Queue."""
def __init__(self):
QueueManager.register('get_queue')
manager = QueueManager(address=(os.environ.get('HOST', 'localhost'), PORT), authkey=KEY)
manager.connect()
self.queue = manager.get_queue()
if __name__ == '__main__':
queue = multiprocessing.Queue()
QueueManager.register('get_queue', callable=lambda: queue)
QueueManager(address=('', PORT), authkey=KEY).get_server().serve_forever()