Example #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)   
Example #2
0
 def __init__(self, actors):
     self.actors_mng = ActorsManager(connection = \
                                     my_app.broker_connection(), 
                                     app = my_app)
     self.actors = actors
Example #3
0
        logger, collector = Logger(), Joiner()   
        print 'collector_id before start:' + collector.id
        wf = Workflow([filter1, filter2, printer, logger, collector])
        [filter1, filter2, printer, logger, collector] = list(wf.start())
        print 'collector_id after start:' + collector.id
        
        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')