1

PHP セッション データを Redis に保存するために Predis を使用しています。

私のサイトには、複数の ajax 呼び出しを行うページがあり、それぞれが Redis セッション ストアに接続してセッション変数を探すことによって PHP で認証されます。

散発的な 500 エラーが発生します。これは、私の PaaS が 6 つの同時 Redis 接続しか許可しないことが原因であると考えられます。これは、6 つ以上の同時 ajax 呼び出しを行うときに最も発生するためだと思います。

典型的なエラーは次のとおりです。

[2013 年 7 月 26 日金曜日 17:25:53] [エラー] [クライアント 10.0.64.59] PHP 致命的なエラー: メッセージ「サーバーへのバイトの書き込み中にエラーが発生しました [tcp://10.0. 27.46:5058]' in /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-7416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php:139\nスタック トレース:\n#0 /mnt /var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/StreamConnection.php(189): Predis\Connection\AbstractConnection->onConnectionError('書き込み中にエラーが発生しました... ')\n#1 /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/StreamConnection.php(294): Predis\Connection\StreamConnection->writeBytes ('*4??$5??SETEX??...')\n#2 /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php(119): Predis\Connection\StreamConnection->writeCommand( Object(Predis\Command\StringSetExpire))\n#3 /mnt/var/vcap.local/dea/apps/funnelplus-reports1 in /mnt/var/vcap.local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d /app/_includes/Predis/Connection/AbstractConnection.php の 139 行目、リファラー:local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php 139 行目、リファラー:local/dea/apps/funnelplus-reports1-3-77416a344cc658624070a91d745d342d/app/_includes/Predis/Connection/AbstractConnection.php 139 行目、リファラー:http://www.domain.com/funnels?funnel=8

単純に 500 をスローするのではなく、これらを強制的にキューに入れる方法、またはこれらの ajax 呼び出しを認証するより良い方法はありますか?

アプリは複数のインスタンス間で負荷分散されるため、セッションに Redis を使用しています。

4

0 に答える 0