class Workflow(object): actors = [] def __init__(self, actors): self.actors_mng = ActorsManager(connection = \ my_app.broker_connection(), app = my_app) self.actors = actors def start(self): for actor in self.actors: yield self.actors_mng.add_actor(actor)
time.sleep(2) [filter1, filter2] |join| collector collector |multiplex| [printer, logger] filter1.call('filter', {'msg':'Ihu'}) filter2.call('filter', {'msg' :'Ahu'}) printer_name = 'examples.workflow.Printer' actors_mng = ActorsManager(connection = my_app.broker_connection(), app = my_app) if __name__ == '__main__': #FilterExample().start() printer = Printer() actors_mng.add_actor(printer) """ Example usage: >>from examples.workflow import Printer, Logger, actors_mng >>pr = Printer() Start 2 actors of type Printer remotely >>rpr1 = actors_mng.add_actor(pr) >>rpr2 = actors_mng.add_actor(pr) Use remote actor >>rpr.call('do_smth') >>rpr.scatter('do_smth') >>rpr.throw('do_smth') Start another actor >>log = Logger >>rlog = actors_mng.add_actor(log)