私はピラミッドアプリケーションのセッション構成をcookie
からext:memcached
に切り替える予定です。私のアプリケーションはHerokuでホストされており、としてmemcache addonを設定しています。HerokuでMemcacheを使用するとき、Beakerの `session.lock_dir`を設定する必要がありますか?
私はBeaker documentationからsession.lock_dir
を指定することは、dog pile effectを防ぐために不可欠であることを理解しています。明示するには:私はディレクトリにファイルパスを提供する必要があります。 Beakerは、これを何らかの種類のロックとして使用して、複数のクライアントがすべて同時に同じ値を設定しようとするのを防ぎます。
私にとって、これは悪いアーキテクチャのように思えます。 memcacheの主な利点の1つは、共有外部サービスとして機能することです。私のアプリケーションプロセスをディスクバインドロックにバインドするのは間違ったアプローチのようです。
同様に、Herokuでは、 "dyno"あたり1つのephemeralファイルシステムを持っています(これはプロセスごとに意味が分かります)。だから私はlock_dir
ディレクトリのパスを提供することができますが、各プロセスが別のディレクトリを使用する場合、これは犬の杭の効果から私を守るでしょうか?
- がlock_dirを指定し、ビーカーをフォークすることが
- しようと心配していないと、この何とか
にパッチを適用プラス私がしてみたい:私はする必要があるかどうか
は私はわかりません他の言語/フレームワークがここでどのようなパターンを使用しているかを知る。これはちょうどビーカーの問題ですか、それとも他のファイルバインドされていない設定が犬のパイル効果に苦しんでいますか?
ありがとうございました。
James
memcachedのバックエンドは 'lock_dir'を必要としないと確信しています。 –
こんにちはMichael、 'beaker.ext.memcached'は、' memory'や 'cookie'以外のバックエンドを使うときはlock_dirが必要です。 [私のトレースバック](https://raw.github.com/gist/3278155/d744c1087445b5c18270212796026dbafe9b5760/gistfile1.pytb)。 – thruflo
申し訳ありませんが、私の最後のコメントは実際には意味がありませんでした。 memcachedバックエンドには 'lock_dir'が必要です。私が投稿したトレースバックは[this code](https:// bitbucket。org/bbangert/beaker/src/d1757ad53763/beaker/ext/memcached.py#cl-85)。私は[同じ問題のこのディスカッション](https://bitbucket.org/bbangert/beaker/issue/78/clusterable-session)に出くわしました。答えは "lock_dirを指定し、それについて心配しないでください"のように見えます。 – thruflo