X
Size: a a a
X
DG
DG
X
LL
GenServerGenServer это набор функций и некоторых коллбеков, который помогает лучше контроллировать процессX
LL
GenServer они обрабатываются через handle_infoX
LL
use GenServer, то там происходит две вещи@behaviour GenServer что говорит компилятору, что этот модуль должен имплементировать коллбеки GenServer-аinit/1 и child_spec/1LL
GenServer.start_link(MyServer, ..., ...) (тут MyServer это тот модуль в котором use GenServer)MyServer.init, а потом, при получении сообщений будут вызываться различные коллбеки (которые handle_*)LL
Gen — это от GenericServer — ну, видимо отсылка к Server из Client-Server паттернаX
Aß
X
LL
handle_call обрабатывает сообщения которые {:"$gen_call", from, msg} (они посылаются функцией как GenServer.call). Это для синхронного взаимодействия, чтобы было запрос-ответ.handle_cast обрабатывает сообщения {:"$gen_cast", msg} , которые посылаются через GenServer.cast{:"$sys", ..., ..., ...}, которые GenServer обрабатывает сам, не вызывая коллебков. Это специальные сообщения для упрощения контроля процессовhandle_infoB
X
B
X
X