| 149 | |
| 150 | |
| 151 | class ZmqIpcClient(ZmqClientBase): |
| 152 | def __init__(self, name, mode): |
| 153 | self.name = name |
| 154 | self.mode = mode |
| 155 | self.file_name = f"/dev/shm/{name}.socket" |
| 156 | self.context = zmq.Context() |
| 157 | self.socket = self.context.socket(self.mode) |
| 158 | |
| 159 | def _create_socket(self): |
| 160 | """create and return a ZeroMQ socket.""" |
| 161 | self.context = zmq.Context() |
| 162 | return self.context.socket(self.mode) |
| 163 | |
| 164 | def connect(self): |
| 165 | self._ensure_socket() |
| 166 | address = f"ipc://{self.file_name}" |
| 167 | self.address = address |
| 168 | self.socket.connect(address) |
| 169 | |
| 170 | def close(self): |
| 171 | """ |
| 172 | Close the socket and context. |
| 173 | """ |
| 174 | llm_logger.info("ZMQ client is closing connection...") |
| 175 | try: |
| 176 | if self.socket is not None and not self.socket.closed: |
| 177 | self.socket.setsockopt(zmq.LINGER, 0) |
| 178 | self.socket.close() |
| 179 | if self.context is not None: |
| 180 | self.context.term() |
| 181 | |
| 182 | except Exception as e: |
| 183 | llm_logger.warning(f"ZMQ client failed to close connection - {e}") |
| 184 | return |
no outgoing calls