diff --git a/python/ray/serve/api.py b/python/ray/serve/api.py index 5ae2c42a8..6bf5140e3 100644 --- a/python/ray/serve/api.py +++ b/python/ray/serve/api.py @@ -7,7 +7,7 @@ from ray.serve.constants import (DEFAULT_HTTP_HOST, DEFAULT_HTTP_PORT, from ray.serve.controller import ServeController from ray.serve.handle import RayServeHandle from ray.serve.utils import (block_until_http_ready, format_actor_name, - get_random_letters) + get_random_letters, logger) from ray.serve.exceptions import RayServeException from ray.serve.config import BackendConfig, ReplicaConfig, BackendMetadata from ray.actor import ActorHandle @@ -53,8 +53,16 @@ class Client: def __del__(self): if not self._detached: + logger.info("Shutting down Ray Serve because client went out of " + "scope. To prevent this, either keep a reference to " + "the client object or use serve.start(detached=True).") self.shutdown() + def __reduce__(self): + raise RayServeException( + ("Ray Serve client cannot be serialized. Please use " + "serve.connect() to get a client from within a backend.")) + def shutdown(self) -> None: """Completely shut down the connected Serve instance.