ヽ(´・肉・`)ノログ

How do we fighting without fighting?

Elixir で OTP の GenServer を使う

Building OTP apps with Mix を参考にしている

GenServer

GenServer には以下 6 つのコールバックが必要.

init(args)
サーバーがスタートした後に実行される
handle_call(msg, from, state)
call メッセージを扱うために実行される
handle_cast(msg, state)
cast メッセージを扱うために実行される
handle_info(msg, state)
その他,プロセスが普通に受信したメッセージを扱う
terminate(reason, state)
サーバーが終了する際に呼ばれる.後処理に使える
code_change(old_vsn, state, extra)
アプリケーションコードがアップグレードされた際に呼ばれる(hot code swap)
use GenServer.Behaviour

するとデフォルトの振舞いは用意されるので,カスタマイズしたいものを定義する.

handle_callhandle_cast は,同期的か非同期的かの違いがある. handle_call は同期的. handle_cast は非同期的.

handle_callhandle_cast は 8 種類の値を返すことができる.

GenServer についてもっと詳しく知りたければ docs を参照すること.

このエントリーをはてなブックマークに追加