синхронные и асинхронные вызовы сервера - PullRequest
0 голосов
/ 19 июля 2011

Предположим, у меня есть gen_server, который обрабатывает только асинхронные вызовы (таким образом, реализован только handle_cast), должен ли я оставить handle_call и заставить его возвращать только общее значение ok, или я должен удалить эту часть кода и принять предупреждения?

Ответы [ 2 ]

2 голосов
/ 19 июля 2011

Я бы выбрал всегда возвращать {reply, ok, State}.Обрабатывать предупреждения как ошибки (то есть останавливать компиляцию и исправлять их).Таким образом, когда появляются настоящие предупреждения, они не скрываются за шумом.

Хорошая привычка заключать все вызовы поведения в вашу собственную функцию, например:

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

Inв этом случае не экспортируйте никакую функцию, которая использует handle_call/2.

0 голосов
/ 19 июля 2011

Разве обработка всех вызовов не является требованием для gen_server, независимо от того, используете ли вы их или нет?

...