【发布时间】:2020-02-27 16:36:41
【问题描述】:
我正在使用 OTP 的 gen_server。我可以使用向某个进程发送消息并接收响应的函数吗?我担心这个响应消息会被 get_server 拦截,因此由 handle_info 而不是我的函数处理。
如果我想拥有这样的功能,我该怎么做?
【问题讨论】:
标签: erlang erlang-otp
我正在使用 OTP 的 gen_server。我可以使用向某个进程发送消息并接收响应的函数吗?我担心这个响应消息会被 get_server 拦截,因此由 handle_info 而不是我的函数处理。
如果我想拥有这样的功能,我该怎么做?
【问题讨论】:
标签: erlang erlang-otp
如果您在其中一个 gen_server 回调函数中有 receive 表达式,它不会被中断。但是,它会接收针对 gen_server 本身的消息,因此您可能希望使用非常特定的模式以便将其他消息留在进程邮箱中以供以后处理。
请注意,这会使 gen_server 进程在等待响应消息时对其他调用无响应。
【讨论】: