예제 #1
0
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)   
예제 #2
0
        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)