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 是一个包含 ObjectRefObjectRefGenerator 的列表。

该方法返回两个列表,即准备好的和未准备好的 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 – 可能已准备好或未准备好的对象的 ObjectRefObjectRefGenerator 列表。请注意,这些必须是唯一的。

  • num_returns – 应返回的 ray_waitables 数量。

  • timeout – 在返回之前等待的最大时间(以秒为单位)。

  • fetch_local – 如果为True,则在对象下载到本地节点之前等待,然后将其作为准备好的对象返回。如果 ray_waitable 是一个生成器,它将等待生成器中的下一个对象下载完成。如果为False,ray.wait() 不会触发对象到本地节点的获取,并且一旦对象在集群中的任何地方可用,将立即返回。

返回:

已准备好的对象引用列表和剩余对象ID的列表。