タグ

taskとelixir-schoolに関する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
  • 並行性 · Elixir School

    Elixirの売りの1つは並行性(コンカレンシー)に対応していることです。 Erlang VM (BEAM)のおかげで、並行処理はElixirでは思ったよりも簡単です。 並行性のモデルはアクターに依存しています。アクターとはメッセージパッシングによって他のプロセスと相互通信を行う、制御されたプロセスのことです。 このレッスンではElixirとともに納められている並行モジュールを見ていきます 続く章では並行モジュールを実装しているOTPの振舞を取り扱います。 プロセス Erlang VM (BEAM)内のプロセスは軽量で、全てのCPU間で実行されます。 ネイティブスレッドのように見えますがそれより単純ですし、Elixirアプリケーション内に数千もの並行プロセスを持つことは珍しくありません。 新しいプロセスを作る最も簡単な方法は、匿名/名前付き関数を引数に取る spawn です。 新しいプロセ

    並行性 · Elixir School
  • 1