ray.get#

ray.get(object_refs: Sequence[ObjectRef[Any]], *, timeout: float | None = None) List[Any][源代码]#
ray.get(object_refs: Sequence[ObjectRef[R]], *, timeout: float | None = None) List[R]
ray.get(object_refs: ObjectRef[R], *, timeout: float | None = None) R
ray.get(object_refs: Sequence[CompiledDAGRef], *, timeout: float | None = None) List[Any]
ray.get(object_refs: CompiledDAGRef, *, timeout: float | None = None) Any

从对象存储中获取一个远程对象或远程对象列表。

此方法会阻塞,直到与对象引用对应的物体在本地对象存储中可用。如果此对象不在本地对象存储中,它将从拥有该对象的对象存储中运送过来(一旦对象被创建)。如果 object_refs 是一个列表,那么列表中每个对象对应的物体将被返回。

对于输入的对象引用列表,每个返回对象的顺序保持不变。也就是说,如果对象引用 A 在输入列表中先于对象引用 B,那么在返回的列表中 A 也将先于 B。

如果此方法在异步上下文中运行,它将发出警告,你可以使用 await object_ref 代替 ray.get(object_ref)。对于对象引用的列表,你可以使用 await asyncio.gather(*object_refs)

不允许传递 ObjectRefGenerator

相关模式和反模式:

参数:
  • object_refs – 要获取的对象引用或要获取的对象引用列表。

  • timeout (Optional[float]) – 在返回之前等待的最大时间(以秒为单位)。将其设置为 None 将阻塞,直到相应的对象变为可用。设置 timeout=0 将在对象可用时立即返回,否则根据上述文档字符串引发 GetTimeoutError。

返回:

一个Python对象或Python对象列表。

抛出:
  • GetTimeoutError – 如果在设置了超时的情况下,get 操作花费的时间超过了超时时间,则会引发 GetTimeoutError。

  • Exception – 如果创建对象的任务或创建其中一个对象的任务引发了异常,则会引发异常。