def main(): set_context() host = create_host("http://127.0.0.1:12666") remote = host.lookup_url("http://127.0.0.1:12777", Host) print(remote) p1 = host.lookup_url("http://127.0.0.1:12777/1", Echo) p2 = remote.lookup('1') print("p1 =", id(p1)) print("p2 =", id(p2)) print(p1 == p2) print(p1 != p2) print(p1 is p2) s = set() s.add(p1) s.add(p2) print(len(s)) print(p1) print(repr(p1)) shutdown()
def main(): set_context() host = create_host('http://127.0.0.1:1679') remote = host.lookup_url('http://127.0.0.1:1277', Host) print remote p1 = host.lookup_url('http://127.0.0.1:1277/1', Echo) p2 = remote.lookup('1') print 'p1 =', id(p1) print 'p2 =', id(p2) print p1 == p2 print p1 != p2 print p1 is p2 s = set() s.add(p1) s.add(p2) print len(s) print p1 print repr(p1) shutdown()
def setUp(self): try: set_context() except: pass try: self.h = create_host() except: pass
def create_local_host(): global host try: set_context() host = create_host(settings.PYACTOR_URL) logger.info("Controller PyActor host created") except: pass return host
def setUp(self): unittest.TestCase.setUp(self) try: set_context() except: pass try: self.host = create_host() except: pass
def run(self): """ Method tu run MapReduce implementation """ url_file = 'http://' + self.url_server + '/' ip = self.ip set_context() host = create_host('http://' + str(ip) + ':6002') registry = host.lookup_url('http://' + str(ip) + ':6000/regis', 'Registry', 'Registry') list_workers = registry.get_all_names() print 'Workers registered in server: ' + str(list_workers) num_workers = len(list_workers) print 'Number of workers: ' + str(num_workers) print 'Start file splitter...' file_handler = FileHandler(self.input_file_path, self.output_dir) file_handler.split_file(num_workers) print 'Finish splitting...' # Create Timer Actor if not host.has_actor('timer'): timer = host.spawn('timer', 'Timer/Timer') else: timer = host.lookup('timer') # Create reducer if not host.has_actor('reducer'): reducer = host.spawn('reducer', self.reduce_impl) else: reducer = host.lookup('reducer') reducer.set_parameters(num_workers, file_handler, self.output_dir, self.output_filename, timer) # Create mapper actors for i in range(num_workers): remote_host = registry.lookup(list_workers[i]) # print remote_host if remote_host is not None: if not remote_host.has_actor('mapper'): worker = remote_host.spawn('mapper', self.map_impl) else: worker = remote_host.lookup('mapper') print "Mapper created in host -> " + list_workers[i] url_file_chank = url_file + "file_" + str(i) + '.txt' worker.start_map(url_file_chank, reducer, timer) serve_forever()
def setUp(self): # This is executed before each test. set_context() self.h = create_host() self.registry = self.h.spawn('Registry', Registry) self.reducer = self.h.spawn('Reducer', Reducer) self.mapper = self.h.spawn('Mapper', Mapper) self.timer = self.h.spawn('Timer', Timer) self.registry.bind('Reducer', self.reducer) self.registry.bind('Mapper', self.mapper) self.registry.bind('Timer', self.timer) self.url_server = '127.0.0.1' self.url_file = 'http://' + self.url_server + '/pg2000.txt' self.stdo = sys.stdout self.out = Outs() sys.stdout = self.out
def setUp(self): set_context() self.maxDiff = None self.h = create_host() self.registry = self.h.spawn('Registry', Registry) self.mapper = self.h.spawn('Map', Map) self.mapper.set_http_server('http://127.0.0.1') self.reduce = self.h.spawn('Reduce', Reduce) self.registry.bind('reducer', self.reduce) self.registry.bind('mapper', self.mapper) self.stdo = sys.stdout self.out = Outs() sys.stdout = self.out
def setUp(self): unittest.TestCase.setUp(self) set_context() #localhost ip self.LOCALHOST = "http://127.0.0.1" self.host = create_host(self.LOCALHOST + ":1679") #Create 3 hosts self.reducer_host = create_host(self.LOCALHOST + ":1277/") self.mapper1_host = create_host(self.LOCALHOST + ":1278/") self.mapper2_host = create_host(self.LOCALHOST + ":1279/") #Spawn 1 reducer and 2 mappers self.reducer = self.host.lookup_url(self.LOCALHOST + ":1277/", Host).spawn(1277, Reduce) self.mapper1 = self.host.lookup_url(self.LOCALHOST + ":1278/", Host).spawn(1278, Map) self.mapper2 = self.host.lookup_url(self.LOCALHOST + ":1279/", Host).spawn(1279, Map)
def test_tracker(self): try: set_context() except: pass try: host = create_host() except: pass # Spawn tracker and peers tracker = host.spawn('tracker', Tracker) p1 = host.spawn('peer1', Peer) p2 = host.spawn('peer2', Peer) p3 = host.spawn('peer3', Peer) # Attach tracker to peers p1.attach_tracker(tracker) p2.attach_tracker(tracker) p3.attach_tracker(tracker) # Start intervals tracker.init_start() p1.announce_me() sleep(0.5) self.assertEqual(['peer1'], tracker.get_peers("file", True)) p2.announce_me() sleep(0.5) self.assertEqual(set(['peer1', 'peer2']), set(tracker.get_peers("file", True))) p3.announce_me() sleep(0.5) self.assertEqual(set(['peer1', 'peer2', 'peer3']), set(tracker.get_peers("file", True))) self.assertEqual([], tracker.get_peers("file1")) shutdown()
def main(): set_context() host = create_host() p1 = host.spawn('1', Echo) p2 = host.lookup('1') print 'p1 =', id(p1) print 'p2 =', id(p2) print p1 == p2 print p1 != p2 print p1 is p2 s = set() s.add(p1) s.add(p2) print len(s) print p1 print repr(p1) shutdown()
def main(): set_context() host = create_host("http://127.0.0.1:12777") p1 = host.spawn('1', Echo) p2 = host.lookup('1') print("p1 =", id(p1)) print("p2 =", id(p2)) print(p1 == p2) print(p1 != p2) print(p1 is p2) s = set() s.add(p1) s.add(p2) print(len(s)) print(p1) print(repr(p1)) serve_forever()
def main(): set_context() host = create_host('http://127.0.0.1:1277') p1 = host.spawn('1', Echo) p2 = host.lookup('1') print 'p1 =', id(p1) print 'p2 =', id(p2) print p1 == p2 print p1 != p2 print p1 is p2 s = set() s.add(p1) s.add(p2) print len(s) print p1 print repr(p1) serve_forever()
from pyactor.context import set_context, create_host, sleep, shutdown class Echo(object): _tell = ['echo', 'bye'] _ask = ['say_something'] def echo(self, msg): print msg def bye(self): print 'bye' def say_something(self): return 'something' if __name__ == "__main__": set_context() h = create_host() e1 = h.spawn('echo1', Echo) e = h.lookup('echo1') print e.say_something() ee = h.lookup_url('local://local:6666/echo1', Echo) print ee.say_something() sleep(1) shutdown()
for i in range(10): try: print self.server.list_files(timeout=2) except TimeoutError as e: print i, e def remote_server(self, web_server): self.server = web_server def download(self): self.server.get_file('a1.txt', timeout=10) print 'download finished' if __name__ == "__main__": set_context('green_thread') # set_context() host = create_host() f1 = host.spawn('file1', File) web = host.spawn('web1', Web) sleep(1) web.remote_server(f1) load = host.spawn('wl1', Workload) load.remote_server(web) load2 = host.spawn('wl2', Workload) load2.remote_server(web) load.launch() load2.download()
def is_finished(self): return self.cnt >= NUM_MSGS def init_token(self): self.next.take_token() def take_token(self): self.cnt += 1 if not self.is_finished(): self.next.take_token() if __name__ == '__main__': # set_context('green_thread') set_context('thread') print(f"TEST {NUM_NODES} nodes and {NUM_MSGS} messages.") port = 1260 host = [create_host(f"http://127.0.0.1:{port}/")] nf = host[0].spawn('ini', Node) np = nf for i in range(NUM_NODES - 2): port += 1 host.append(create_host(f"http://127.0.0.1:{port}/")) ni = host[i+1].spawn(str(i), Node) ni.set_next(np) np = ni
""" Basic remote example sending tell messages. SERVER @author: Daniel Barcelona Pons """ from pyactor.context import set_context, create_host, serve_forever class Echo(object): _tell = {'echo'} def echo(self, msg): print(msg) if __name__ == '__main__': set_context() host = create_host("http://127.0.0.1:1277/") e1 = host.spawn('echo1', Echo) serve_forever()
for i in range(10): try: print(self.server.list_files(timeout=2)) except PyActorTimeoutError as e: print(i, e) def remote_server(self, web_server): self.server = web_server def download(self): self.server.get_file('a1.txt', timeout=10) print("download finished") if __name__ == '__main__': set_context('green_thread') # set_context() host = create_host() f1 = host.spawn('file1', File) web = host.spawn('web1', Web) sleep(1) web.remote_server(f1) load = host.spawn('wl1', Workload) load.remote_server(web) load2 = host.spawn('wl2', Workload) load2.remote_server(web) load.launch() load2.download()
def setUp(self): set_context() self.h = create_host()