タグ

プロセスとElixirに関するskypenguinsのブックマーク (3)

  • [翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか - Qiita

    John Bohnさんのブログ記事 Elixir Process Architecture or: How I Learned to Stop Worrying and Love to Crashの翻訳です。 Elixir(とそのベースになっているErlang)のプロセスは生成のためのコストが小さいため「下手にエラー処理するコードを書いてプロセスを維持するよりはさっさとクラッシュさせて、それに続く処理の中で対策して再起動したほうがよい」という思想があります。それを実際に適用してみたという話です。なお説明を簡単にするために多少端折ってるとのこと。 ところでこのタイトルは某古典的スラップスティックSF映画のアレですね… "クラッシュさせちまえ" それは私が聞かされ続けてきたことだ。正直言ってそのセリフの意味するところを理解するまで少々時間が必要だった。その考え方がピーンと来るにはProcess

    [翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか - Qiita
  • Elixir のプロセスを使ってフェイルセーフなアプリケーションを作る ─ 失敗は恐れず泥水にダイブ - Qiita

    [翻訳] Elixirのプロセスアーキテクチャ または私は如何にして心配するのを止めてクラッシュを愛するようになったか にもあるように Elixir においては例外処理は、それを頑張ってなんとかしようとするのではなく、軽量プロセスのコンテキストでむしろすすんでクラッシュさせてしまえ、というのが良い作法である。 クイズ番組で ○ か × か答えを選んで壁に突っ込んだ先に、正解ならクッションが、不正解なら泥水があるという企画があるが、それに喩えるなら 泥水だろうが何だろうが躊躇せずダイブしろ! というのが Elixir 流 (俺調べ) である。 もとい、クラッシュさせてどうするのかというと Supevisor を使って、別プロセスから該当プロセスを監視しておいて、クラッシュしてもアプリケーション全体としては間違いなく動いている状態を保証するのが正しい。 カッとなってちょっとそのための例を書いて

    Elixir のプロセスを使ってフェイルセーフなアプリケーションを作る ─ 失敗は恐れず泥水にダイブ - Qiita
  • Elixirのプロセス生成とプロセス間通信 | DevelopersIO

    Elixirは並行処理能力に優れたRubyライクなシンタックスを持つ関数型言語です。 前回のエントリではElixirの概要やシンタックスの紹介を簡単にしました。 今回はElixirの複数プロセスを使ったプログラミングについて書いていきます。 Elixirにはプロセス周りの実装をサポートしてくれるOTPというライブラリがあるのですが、まずはOTPを使用しないプログラミングを扱います。 軽量プロセス Elixirのプロセスは軽量プロセスと言われていて、OSのプロセスやスレッドではなくGreenスレッドです。 カーネルではなくVMでスケジューリングされるので軽量、コンテキストスイッチが発生しないという利点があります。 1軽量プロセスで約300ワードです。 プロセス生成 Elixirで新しいプロセスを生成するのは簡単です。 spawn関数を呼び出し、戻り値に生成したプロセスIDを受け取ります。 d

    Elixirのプロセス生成とプロセス間通信 | DevelopersIO
  • 1