【发布时间】:2011-10-08 11:54:18
【问题描述】:
假设我有一个只处理异步调用的 gen_server(因此只实现了 handle_cast),我应该保留 handle_call 并让它只返回通用的 ok 值,还是应该删除那部分代码并接受警告?
【问题讨论】:
标签: erlang erlang-otp gen-server
假设我有一个只处理异步调用的 gen_server(因此只实现了 handle_cast),我应该保留 handle_call 并让它只返回通用的 ok 值,还是应该删除那部分代码并接受警告?
【问题讨论】:
标签: erlang erlang-otp gen-server
我会选择总是返回{reply, ok, State}。将警告视为错误(即停止编译并修复它们)。这样,当真正的警告出现时,它们就不会隐藏在噪音后面。
将所有对行为的调用包装在您自己的函数中是一个好习惯,例如:
delete(Something) ->
gen_server:call(?MODULE, {delete, Something}).
在这种情况下,不要导出任何使用handle_call/2的函数。
【讨论】:
处理所有调用不是 gen_server 的要求,不管你是否使用它们?
【讨论】: