2012-02-07 12 views
1

今日Magentoサイトに負荷のかかる状態でモジュールの設定を読み込むタスクを扱った。新しいモジュールのconfig.xmlファイルをコピーして、何か問題を修正しました。キャッシュをクリアせずにMagentoサイトの設定を変更し直すことが可能

Magentoはmemcachedキャッシュバックエンドで動作します。

モジュールを実行するにはキャッシュを完全にクリアしなければならず、サイトのパフォーマンスが悪かったため、500人の同意ユーザーがいました。だから、キャッシュをクリアせずに構成の変更を展開する方法を探しています。いずれかが

ありますか?

ご意見ありがとうございます。

Jaro。

答えて

3

ので、レース条件を避ける方法コンフィグキャッシュを更新するのではなく、それをクリアする、です。

https://gist.github.com/2715268

+0

それは素晴らしいですね!ありがとう、私はそれを試して、あなたに知らせるつもりです。 – Jaro

+0

Magentoが新しいリソースアダプタの名前(Magento_Db_Adapter_Pdo_Mysql)をキャッシュし、 'app \ code \ core \ Mage \ Core \に致命的なエラーを投げていたとき、1.8.0.0にアップグレードして1.7.0.2にダウングレードした後(Gitブランチで) '$ connection = new $ className($ config);'行の '_newConnection()'に 'Model \ Resource.php'を追加します。キャッシュを消去することは役に立たなかった。私はなぜそれがそのように走っていたのか分からないが、私は私を怒らせていた。 Gistからコードを実行した後、私のインスタンスは正しく動作しています。ありがとう! – Wirone

1

モジュールの設定を読み込むためにキャッシュ全体をクリアする必要はありません。 Flush Magento Cache *オプションを使用してモジュールをインストールできます。最終的には、キャッシュがクリアされていなければフロントエンドの変更を確認する必要があります。パフォーマンスの影響を最小限に抑えるために行う最善の方法は、オフピーク時または低使用時にクリアすることです。

*編集した - のおかげFiasco Labs

+0

**フラッシュキャッシュストレージ**は、ここで説明するように、**フラッシュマゼンタキャッシュ**の核オプションです。http://stackoverflow.com/questions/5955365/what-is-the-difference-between -flush-magento-cache-and-flush-cache-storage-i消去キャッシュはMagentoにのみ影響し、フラッシュキャッシュストレージはサーバ上の他のPHPアプリケーションに対しても消去します。両方ともキャッシュをフラッシュするので、1つだけがより完全です。 –

+0

キャッシュ全体をクリアすることなくモジュールをインストールするには別の方法が必要だと思います。私はすべてのモジュールをチェックし、必要に応じてインストールプロセスを強制するアプローチを優先します。最終的には、あなたが作者であれば、それが何をするかを知ってください:) – Jaro

0

あなたは常には、モジュールをインストールしたり、その構成を変更するときにキャッシュをフラッシュする必要があります。これは、構成の再読み込みを強制的に実行し、互換性のないオペコードを空にして、Magentoに変更したアプリケーションコードとテンプレートを強制的に読み込ませるために必要です。

はい、サイトのパフォーマンスに瞬間的な影響を与えますが、そうしなければ本当に興味深い問題が発生する可能性があります。

モジュールのインストールでは、管理者のボタンを使用するだけでは十分ではなかった状況がありました。システムをメンテナンスモードにして、すべての管理セッションがログアウトしていることを確認してください。手動でvar/cache/mage--を削除しますか?フォルダ。 1つの管理セッションで再度ログインし、管理セッションが開始されるまで実行し、ログアウトしてから管理者に戻って、新しくインストールしたモジュールの全機能をサイトでチェックします。

これはもちろん、キャッシュのフラッシュで十分である簡単な設定の変更には過剰です。ここで

More info on clearing the cache in Magento

+0

私はそれが残虐アプローチであると言うでしょう:-) – Jaro

+0

はい、そうです。スクリプト言語のプログラムをコンパイルされたプログラムのように高速にするにはどうすればよいですか?オブジェクトファイルを作成して実行可能ファイルにリンクするのではなく、ファイルをキャッシュします。ウェイバック時、これは解釈されたパスカルで試行されました。ソースが変更されたときにリフレッシュする必要がある以上のpコードファイルがすべてありました。同じことがPHPで行われたキャッシュにも当てはまります。キャッシュをリフレッシュする必要があります。これにアプローチする唯一の方法は、特定のキャッシュタグをクリアし、変更されたものをヒットすることです。上記では、おそらくCONFIGをクリアしただけでうまくいきました。 –

+0

私はこの限られたキャッシュタグの削除を試しましたが、たまに頻繁に何かを持っているだけで、APCに陥ってしまいました。結局のところ、APCを完全にリフレッシュさせるように見えるため、直接ファイルの削除によってクリアするのはずっと面倒ではありませんでした。フロントエンドに奇妙な混乱した迷惑メール、バックエンドで消えている管理者全体を見ている顧客を節約します。キャッシュはビジー状態のサイトでかなり速く再構築されます。 –

1

それはおそらく、メンテナンスモードにシステムを入れて、すべての管理セッションがログアウトしていることを確認し、誰もがアウトだことを確認し、手動でVAR /キャッシュ/ mage--を削除することをお勧めですか?フォルダ。 1つの管理セッションで再度ログインし、管理セッションが開始されるまで実行し、ログアウトしてから管理者に戻って、新しくインストールしたモジュールの全機能をサイトでチェックします。

関連する問題