ray.wait#
- ray.wait(ray_waitables: List[ray._raylet.ObjectRef | ray._raylet.ObjectRefGenerator], *, num_returns: int = 1, timeout: float | None = None, fetch_local: bool = True) Tuple[List[ray._raylet.ObjectRef | ray._raylet.ObjectRefGenerator], List[ray._raylet.ObjectRef | ray._raylet.ObjectRefGenerator]] [源代码]#
返回一个已准备好的ID列表和一个未准备好的ID列表。
如果设置了超时,函数将在请求的ID数量准备好或达到超时时间时返回,以先发生者为准。如果没有设置超时,函数将简单地等待,直到准备好该数量的对象,并返回该确切数量的对象引用。
ray_waitables
是一个包含ObjectRef
和ObjectRefGenerator
的列表。该方法返回两个列表,即准备好的和未准备好的
ray_waitables
。- ObjectRef:
与对象存储中可用的对象相对应的对象引用在第一个列表中。其余的对象引用在第二个列表中。
- ObjectRefGenerator:
在第一个列表中的是那些下一个引用(将通过
next(generator)
获取)在对象存储中有相应对象可用的生成器。所有其他生成器则被放置在第二个列表中。
输入的 ray_waitables 列表的顺序被保留。也就是说,如果 A 在输入列表中先于 B,并且两者都在就绪列表中,那么 A 将在就绪列表中先于 B。如果 A 和 B 都在剩余列表中,这也同样适用。
如果在异步上下文中运行此方法,它将发出警告。可以使用
await asyncio.wait(ray_waitables)
代替ray.wait(ray_waitables)
。相关模式和反模式:
- 参数:
ray_waitables – 可能已准备好或未准备好的对象的
ObjectRef
或ObjectRefGenerator
列表。请注意,这些必须是唯一的。num_returns – 应返回的 ray_waitables 数量。
timeout – 在返回之前等待的最大时间(以秒为单位)。
fetch_local – 如果为True,则在对象下载到本地节点之前等待,然后将其作为准备好的对象返回。如果
ray_waitable
是一个生成器,它将等待生成器中的下一个对象下载完成。如果为False,ray.wait() 不会触发对象到本地节点的获取,并且一旦对象在集群中的任何地方可用,将立即返回。
- 返回:
已准备好的对象引用列表和剩余对象ID的列表。