Istnieją trzy różnice między gen_server:cast/2
i gen_server:abcast/2,3
:
gen_server:abcast/3
pobiera listę węzłów docelowych określające gdzie można znaleźć gen_server
przypadki zarejestrowane przez określoną nazwą, natomiast gen_server:abcast/2
wysyła do listy [node() | nodes()]
, natomiast gen_server:cast/2
może adresować tylko jedną instancję gen_server
.
- Aby zidentyfikować serwer docelowy,
gen_server:abcast/2,3
przyjmuje tylko nazwę, jako atom, natomiast gen_server:cast/2
może przyjmować atom, pid lub dla opcji, dowolny termin Erlang.
- zwraca
abcast
, natomiast gen_server:cast/2
zwraca ok
.
Pierwszą jest to najbardziej istotne, gdyż pozwala na asynchronicznej transmisji (tj abcast
) do zestawu gen_server
przypadkach całej zestawu węzłów.