-
Guilhem Saurel authoredGuilhem Saurel authored
manager.py 1.02 KiB
#!/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_tasks")
QueueManager.register("get_results")
manager = QueueManager(
address=(os.environ.get("HOST", "localhost"), PORT), authkey=KEY
)
manager.connect()
self.tasks = manager.get_tasks()
self.results = manager.get_results()
if __name__ == "__main__":
task_queue = multiprocessing.Queue()
result_queue = multiprocessing.Queue()
QueueManager.register("get_tasks", callable=lambda: task_queue)
QueueManager.register("get_results", callable=lambda: result_queue)
QueueManager(address=("", PORT), authkey=KEY).get_server().serve_forever()