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()