receive_response(RequestId, Timeout) -> Result
OTP 23.0RequestId = request_id()
Timeout = timeout_time()
Result = term()
收到回复call
调用进程先前使用的请求send_request/4
.RequestId
应该是之前创建的返回值send_request/4
调用,并且相应的响应不应已被接收并处理完成receive_response()
,check_response/4
, 或者wait_response/4
.
Timeout
设置等待响应的时间上限。如果操作超时,则由以下标识的请求RequestId
将被放弃,然后{erpc, timeout}
error
将引发异常。也就是说,超时后将不会收到与请求相对应的响应。如果收到响应,则call
操作完成并返回结果或引发异常。可以引发的异常对应于可以引发的异常call/5
.receive_response/2
将会失败{erpc, badarg}
如果/当无效时例外RequestId
被检测到或者如果无效Timeout
已通过。
对函数的调用my_call(Node, Module, Function, Args, Timeout)
下面相当于调用erpc:call(Node, Module, Function, Args,
Timeout)
如果一个人忽视了绩效。call()
可以利用选择性接收优化,无需从头开始扫描消息队列以查找匹配的消息。这send_request()/receive_response()
然而,组合不能利用这种优化。
my_call(Node, Module, Function, Args, Timeout) ->
RequestId = erpc:send_request(Node, Module, Function, Args),
erpc:receive_response(RequestId, Timeout).
如果 erpc
操作失败,但不知道该函数是否/将被应用(即超时或连接丢失),则调用者将不会收到有关结果的任何进一步信息(如果/当应用该函数时)完成。如果应用函数显式地与调用进程通信,那么这种通信当然可以到达调用进程。
相关用法
- erlang recv(Socket)用法及代码示例
- erlang recompose(URIMap)用法及代码示例
- erlang reverse用法及代码示例
- erlang rename用法及代码示例
- erlang remove用法及代码示例
- erlang registered用法及代码示例
- erlang register用法及代码示例
- erlang repair_continuation(Continuation, MatchSpec)用法及代码示例
- erlang register(RegName, PidOrPort)用法及代码示例
- erlang registered()用法及代码示例
- erlang read_file_info(Filename)用法及代码示例
- erlang read_file_info(File)用法及代码示例
- erlang remove(Key, Map1)用法及代码示例
- erlang referenced_byte_size(Binary)用法及代码示例
- erlang replace(Subject, Pattern, Replacement, Options)用法及代码示例
- erlang replace(String, SearchPattern, Replacement)用法及代码示例
- erlang reverse(String :: unicode:chardata())用法及代码示例
- erlang reverse(List1, Tail)用法及代码示例
- erlang replace(Subject, RE, Replacement, Options)用法及代码示例
- erlang relation_to_family(BinRel)用法及代码示例
- erlang relative_product(ListOfBinRels)用法及代码示例
- erlang relative_product1(BinRel1, BinRel2)用法及代码示例
- erlang restriction(BinRel1, Set)用法及代码示例
- erlang restriction(SetFun, Set1, Set2)用法及代码示例
- erlang resolve(RefURI, BaseURI)用法及代码示例
注:本文由纯净天空筛选整理自erlang.org大神的英文原创作品 receive_response(RequestId, Timeout) -> Result。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。