class Supervisor(Actor): def __init__(self, name, workers): Actor.__init__(self, name) self.workers = workers self.supervisor_strategy = RoundRobinIndexer(len(workers)) self.state = ActorStates.Idle def start(self): Actor.start(self) for w in self.workers: w.start() def receive(self, message): if -1 == len(self.workers) - 1: raise Exception("Supervisor received work but no workers to give it to!") index = self.supervisor_strategy.next() print("Sending work to worker %s [%d]" % (self.workers[index].name, self.inbox.qsize())) self.workers[index].inbox.put(message)
class Supervisor(Actor): def __init__(self, name, workers): Actor.__init__(self, name) self.workers = workers self.supervisor_strategy = RoundRobinIndexer(len(workers)) self.state = ActorStates.Idle def start(self): Actor.start(self) for w in self.workers: w.start() def receive(self, message): if -1 == len(self.workers) - 1: raise Exception( "Supervisor received work but no workers to give it to!") index = self.supervisor_strategy.next() print("Sending work to worker %s [%d]" % (self.workers[index].name, self.inbox.qsize())) self.workers[index].inbox.put(message)
def __init__(self, name, workers): Actor.__init__(self, name) self.workers = workers self.supervisor_strategy = RoundRobinIndexer(len(workers)) self.state = ActorStates.Idle