タグ

elixir-schoolとopen-telecom-platformに関するnabinnoのブックマーク (2)

  • OTPスーパバイザ · Elixir School

    スーパバイザは、他のプロセスを監視するという一つの目的に特化したプロセスです。 子プロセスが失敗した際に自動的に再起動させることによって、耐障害性の高いアプリケーションを作ることを可能にします。 設定 スーパバイザの魔術は Supervisor.start_link/2 関数の中にあります。 スーパーバイザプロセスと子プロセスを開始するのに加えて、子を管理するためにスーパーバイザが使用する戦略を定義することができます。 OTPの並行性レッスンで実装したSimpleQueueを用いて、始めていきましょう。 新しいプロジェクトを mix new simple_queue --sup を使って作成することで、スーパバイザツリーも一緒に作成することができます。 SimpleQueue モジュール用のコードは lib/simple_queue.ex へ、スーパバイザを起動するコードは lib/sim

    OTPスーパバイザ · Elixir School
  • OTPの並行性 · Elixir School

    並行性(コンカレンシー)に関するElixirの抽象化を見てきましたが、さらなる制御が必要になることもあります。そうした時のために、Elixirに組み込まれているOTPの振る舞いに目を向けます。 このレッスンではGenServerという重要な要素に焦点を当てます GenServer OTPサーバーは一連のコールバックを実装するGenServerの振る舞いをもったモジュールです。 最も基的なレベルでは、GenServerは単一プロセスであり、更新された状態を伝える反復処理のたびにに1つのメッセージを処理するループを実行します。 GenServerのAPIを実演するために、値を格納し読みだす基的なキューを実装します。 GenServerを始めるには、起動し、初期化処理を行う必要があります。 ほとんどの場合、プロセスをリンクしたいので GenServer.start_link/3 を用います。

    OTPの並行性 · Elixir School
  • 1