Class to manage a GraphLearn server, including start, init and stop.
| 19 | from graphlearn import pywrap_graphlearn as pywrap |
| 20 | |
| 21 | class Server(object): |
| 22 | """ Class to manage a GraphLearn server, including start, init and stop. |
| 23 | """ |
| 24 | |
| 25 | def __init__(self, |
| 26 | server_id, |
| 27 | server_count, |
| 28 | server_host = "0.0.0.0:0", |
| 29 | tracker = "", |
| 30 | **kwargs): # pylint: disable=unused-argument |
| 31 | """ Create GraphLearn server instance with given cluster env info. |
| 32 | |
| 33 | Args: |
| 34 | server_id: An int, server index in the cluster, starts from 0. |
| 35 | server_count: An int, server instance number in the cluster. |
| 36 | server_host: Use a given ip:port to start the server, which will be used |
| 37 | for communication. By default, the server will choose an available |
| 38 | address automatically. In this way, tracker is needed for address |
| 39 | discovering. |
| 40 | tracker: A string, the tracker path, where all server addresses will be |
| 41 | registered to. |
| 42 | """ |
| 43 | self._server_id = server_id |
| 44 | self._server_count = server_count |
| 45 | self._tracker = tracker |
| 46 | self._server = pywrap.server(server_id, server_count, server_host, tracker) |
| 47 | |
| 48 | @property |
| 49 | def server_id(self): |
| 50 | return self._server_id |
| 51 | |
| 52 | @property |
| 53 | def server_count(self): |
| 54 | return self._server_count |
| 55 | |
| 56 | @property |
| 57 | def tracker(self): |
| 58 | return self._tracker |
| 59 | |
| 60 | def start(self): |
| 61 | """ Start the server. It will not return until all servers are started. |
| 62 | """ |
| 63 | self._server.start() |
| 64 | |
| 65 | def init(self, edge_source=None, node_source=None): |
| 66 | """ Initialize graph data. It will not return until all data is installed. |
| 67 | """ |
| 68 | if not edge_source: |
| 69 | edge_source = [] |
| 70 | if not node_source: |
| 71 | node_source = [] |
| 72 | self._server.init(edge_source, node_source) |
| 73 | |
| 74 | def stop(self): |
| 75 | self._server.stop() |
| 76 | |
| 77 | def stop_sampling(self): |
| 78 | self._server.stop_sampling() |
no outgoing calls
no test coverage detected