> Erlang中文手册 > call/5 在一个节点上调用执行一个函数

rpc:call/5

在一个节点上调用执行一个函数

用法:

call(Node, Module, Function, Args, Timeout) -> Res | {badrpc, Reason}

跟 rpc:call/4 一样,都是在节点 Node 上执行 apply(Module, Function, Args),并返回响应值 Res。如果调用失败,则返回 {badrpc, Reason}。Timeout 是以毫秒为单位的一个超时值。如果调用超时,则返回的调用失败原因 Reason 是 timeout。

Pid = self(),
Node = node(Pid),
rpc:call(Node, erlang, is_process_alive, [Pid], 5000).

如果在调用超时后收到回复信息,那么这条回复信息是不会被方便消息队列里,因为这个函数开启的接收信息的进程来停止接收这条信息。同理,rpc:call/4 也是有这特性。