2022-07-09 20:09:48 +00:00
|
|
|
from typing import Optional
|
|
|
|
from ray._private.gcs_utils import GcsAioClient
|
|
|
|
|
|
|
|
|
|
|
|
class HealthChecker:
|
|
|
|
def __init__(
|
|
|
|
self, gcs_aio_client: GcsAioClient, local_node_address: Optional[str] = None
|
|
|
|
):
|
|
|
|
self._gcs_aio_client = gcs_aio_client
|
|
|
|
self._local_node_address = local_node_address
|
|
|
|
|
|
|
|
async def check_local_raylet_liveness(self) -> bool:
|
|
|
|
if self._local_node_address is None:
|
|
|
|
return False
|
|
|
|
|
|
|
|
liveness = await self._gcs_aio_client.check_alive(
|
2022-08-08 23:29:42 +00:00
|
|
|
[self._local_node_address.encode()], 0.1
|
2022-07-09 20:09:48 +00:00
|
|
|
)
|
|
|
|
return liveness[0]
|
|
|
|
|
|
|
|
async def check_gcs_liveness(self) -> bool:
|
2022-08-08 23:29:42 +00:00
|
|
|
await self._gcs_aio_client.check_alive([], 0.1)
|
2022-07-09 20:09:48 +00:00
|
|
|
return True
|