1. Problems And Background
Many users’ code needs a function that waits for an actor to complete. Previously, we were encouraging users to implement meaningless remote calls such as
ray.wait (actor.no_op.remote()) to workaround. But as the scale of the user code repository grows, so does the cost of maintenance.
Therefore, I’d like to propose an API that waits for an actor to be created successfully, to simplify such operations for users.
actor.wait(timeout_ms=500) actor.wait() # timout_ms is infinite
actor.wait(500, TimeUnit.MilliSeconds); actor.wait(); // timeoutMs is infinite
Exceptions such as
ActorDeadException would be thrown if the actor is not created successfully.
We have no need to implement
ray.wait(actor_list) API currently. If we have the needs of
ray.wait(actor_list) API in the future, it’s easy to wrap by:
def wait(actor_list): for actor in actor_list: actor.wait()