私は、合理化製品の作成に主目的のmagentoデプロイメントを進めています。 基本的に、バックエンドには非常に時間のかかる呼び出しがあります。これは、ユーザーが作業できるように非同期で実行する必要があります。この時MagentoはmemcachedのPHPセッションを認識できません
- 私の最初のショットは、時間のかかるスクリプトにデータを投稿し
javascript
を介してユーザーを再配置するAJAX
を使用していました。
このやや動作しますが、Magentoのセッションは、PHPのセッションに依存しているようだ - 限り、私は、ユーザーがphp.ini
とmagento/var/session
に作成したもので指定されたディレクトリに作成されたセッションを持つことになります見ることができるように。
このPHPセッションはファイルベースなので、最初の呼び出し(ajax
によって呼び出される)の前に、同じセッション内の2番目のリクエスト(リダイレクト)または他のリクエストでサーバーからの応答を得ることはできません。終了しました。
- 私の解決策は、これらの非同期呼び出しを可能にするために、これらのセッションファイル(magentoとともに)をmemcacheすることでした。
ただし、memcacheに保存されているため、magentoはこれらのセッションを認識できないようです。
これはなぜですか?
私は、これらのセッションにアクセスする際に標準のPHP関数を使用したと思います。私はこれらの関数をソースコードで見つけることはできませんが、何らかの方法で呼び出さなければなりません。
セッションを適切に保存してロードできることをテストしました。 エラーメッセージは表示されず、ログは空です。
なぜマゼンタがこれを処理できないのでしょうか?
これらの非同期呼び出しを達成するには、それは許容可能なアプローチですか、それとももっと良い解決策ですか?
TL; DR 標準PHPセッションはメモリキャッシュを使用して格納されています。 Magentoはそれらを認識していないようです。どうしてこれなの?
お返事ありがとうございます。しかし、これはまあまあです。私はこの正確なコードをlocal.xmlファイルに入れて、magento自身のセッションをmemcachedにします。これはうまくいきます。例えば、私はmangento自身のセッションをmemcachedにし、phpのセッションをファイルとして保存することができます。これは動作します。この問題は、私がmemcacheのphpセッションを行うときに発生します。セッションごとに2つの異なるセッションがあります(意味があります) ファイル構造は次のようになります: /web/tmp/[php.iniに記載されているphpセッション、パス] /web/www/magento/temp/sessions/[magentoセッション、config.xmlのパス] – user1238626
FTR私はこれをwampでテストしています。 – user1238626
あなたは何か間違っている。 ajaxで呼び出すカスタムPHPスクリプトでmagentoセッションを再利用する必要があります。 – Zyava