タグ

ブックマーク / www.xmisao.com (3)

  • Rubyで並列処理を行うparallel gemの使い方と勘所 -- ぺけみさお

    parallelを使うとKenrel#forkやThreadを駆使するのと比べて簡単に並列処理を書くことができます。parallelは拙作のBestGems.orgによると、合計ダウンロード数で151位、デイリーダウンロード数は100位前後で、現時点で非常にメジャーなGemとなっています。 この記事ではparallelの基的な使い方と、実際に使ってみて感じた注意点をTipsとして整理したいと思います。 parallelはREADME.mdが親切に書かれています。 加えて主要な部分は500行程度の小さなGemです。 利用する場合は公式のドキュメントとソースコードを確認されることをおすすめします。 前提ソフトウェア ソフトウェア バージョン 備考 ruby 2.5.1 - parallel 1.12.1 - rails 5.0 - 使い方 インストール gem install paralle

  • nginxのproxy_passの注意点 -- ぺけみさお

    nginxをリバースプロキシにする場合に使用するproxy_passディレクティブは、URIが与えられた場合と、そうでない場合で挙動が異なる。 どういうことかというと、以下の1.と2.は別々の結果となる。proxy_passディレクティブの引数に注目して欲しい。 # 1. specified with a URI location /name/ { proxy_pass http://127.0.0.1/; } 1.はproxy_passディレクティブに完全なURIを与えた例である。この場合http://example.com/name/fooへのアクセスは、/nameが削除されたhttp://127.0.0.1/fooへ転送される。 2.はproxy_passディレクティブに完全なURIを与えなかった例である。この場合http://example.com/name/fooへのアクセスは、

  • 継承とincludeおよび特異クラスによるRubyのメソッド探索順序 -- ぺけみさお

    継承とincludeおよび特異クラスが組み合わさった場合のRubyのメソッド探索順序は図中の番号のとおりだ。 Clazzはユーザが定義した親クラス、InheritClazzはClazzを継承したクラス、InheritClazzはModule1とModule2をincludeする。 このクラス図ではincludeの結果、実際には現れない中間クラス(InheritClazz1)と(InheritClazz2)が生成されることにしている。 さらにこのInheritClazzに特異メソッドmethodを定義した結果生成される特異クラスをSingletonInheritClazzとする。 文章で説明するとややこしくなってしまうが、ポイントを説明するとRubyでは以下1.から4.の順番でメソッドが探索され実行される。 オブジェクトが特異クラスのインスタンスなら特異クラスで定義されたメソッドが呼ばれるク

  • 1