gen服务器同步和异步调用

时间:2011-07-19 12:31:07

标签: erlang otp gen-server

假设我有一个只处理异步调用的gen_server(因此只实现了handle_cast),我应该保留handle_call并使其仅返回通用的ok值,还是应该删除代码的那部分并接受警告?

2 个答案:

答案 0 :(得分:2)

我选择永远返回{reply, ok, State}。将警告视为错误(即停止编译并修复它们)。这样,当出现真实警告时,它们不会隐藏在噪音背后。

在您自己的函数中包含对行为的所有调用是一个好习惯,例如:

delete(Something) ->
    gen_server:call(?MODULE, {delete, Something}).

在这种情况下,请勿导出使用handle_call/2

的任何功能

答案 1 :(得分:0)

不管是否使用gen_server,都不是处理所有调用的要求吗?