Advertisement
Guest User

Untitled

a guest
Mar 29th, 2020
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. import rpyc, sys, threading, time, socket, random
  2. from rpyc.utils.server import ThreadedServer
  3. from rpyc.utils.helpers import classpartial
  4. from threading import Lock
  5. import os, inspect
  6. currentdir = os.path.dirname(os.path.abspath(inspect.getfile(inspect.currentframe())))
  7. parentdir = os.path.dirname(currentdir)
  8. sys.path.insert(0,parentdir)
  9. from dag import DAG
  10. import logging
  11. import copy
  12.  
  13. RPYC_CFG = {"allow_all_attrs": True, "allow_pickle": True}
  14.  
  15. logging.basicConfig(
  16. format='%(asctime)s %(levelname)-8s %(message)s',
  17. level=logging.DEBUG, filename="log.txt",
  18. datefmt='%Y-%m-%d %H:%M:%S')
  19.  
  20. class netAddr:
  21. def __init__(self, host, mport):
  22. self.host = host
  23. self.mport = mport
  24.  
  25. class NodeManagerService(rpyc.Service):
  26. def __init__(self, node):
  27. self.node = node
  28.  
  29. def on_connect(self, conn):
  30. self.node.manager = conn
  31. #don't work either:
  32. #conn.root.foo("bar0")
  33. #self.node.manager.root.foo("bar1")
  34.  
  35. class Node:
  36. def __init__(self, addr):
  37. self.manager_thread = ThreadedServer(classpartial(NodeManagerService, self), hostname=addr.host, port=addr.mport, protocol_config=RPYC_CFG)
  38. threading.Thread(target=self.manager_thread.start).start()
  39.  
  40. class ManagerService(rpyc.Service):
  41. def exposed_foo(self, foo):
  42. logging.debug("manager got " + str(foo) + "from" + str(self.addr))
  43. return
  44.  
  45. class Manager:
  46. def __init__(self, addr):
  47. self.node = rpyc.connect(addr.host, addr.mport, service = ManagerService, config=RPYC_CFG)
  48.  
  49. if __name__ == "__main__":
  50. addr = netAddr("localhost", 10000)
  51. n = Node(addr)
  52. m = Manager(addr)
  53. time.sleep(0.1) #give the node and manager some time to get acquainted
  54. n.manager.root.foo("bar2")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement