yr.get

Contents

yr.get#

yr.get(obj_refs: ObjectRef | List, timeout: int = constants.DEFAULT_GET_TIMEOUT, allow_partial: bool = False) object#

根据数据对象的键从数据系统中检索值。接口调用后会阻塞直到获取到对象的值或者超时。

Note

get统一返回 memoryview 指针。

参数:
  • obj_refs (ObjectRef,List[ObjectRef]) - 数据系统中的对象的 object_ref

  • timeout (int,可选) - 超时值,取 -1 时默认无限等待。取值限制: -1(0, ∞),默认值为 constants.DEFAULT_GET_TIMEOUT 秒 即 300

  • allow_partial (bool,可选) - 如果设置为 False,当数据系统在超时期间返回部分结果时,get 接口将抛出异常。 如果设置为 True,当数据系统返回部分结果时,get 接口将返回对象列表,并将失败的对象填充为 None。默认值为``_DEFAULT_ALLOW_PARTIAL``。

返回:

一个 Python 对象或一组 Python 对象。

异常:
  • ValueError - 传入参数类型错误。

  • RuntimeError - 从数据系统中获取对象失败。

  • YRInvokeError - 函数执行错误。(该异常详情:YRInvokeError)。

  • TimeoutError - 在指定的超时时间内无法获取所有对象引用的结果。

样例:
>>> import yr
>>> yr.init()
>>>
>>> @yr.invoke()
>>> def add(a, b):
...     return a + b
>>> obj_ref_1 = add.invoke(1, 2)
>>> obj_ref_2 = add.invoke(3, 4)
>>> result = yr.get([obj_ref_1, obj_ref_2], timeout=-1)
>>> print(result)
>>> yr.finalize()