私は実稼働環境でテストしているSymfony2のウェブサイトを持っています。私は先に進んでキャッシュをクリアしましたが、それ以上の修正を加える予定ですが、小さな問題があります。プロダクションでSymfonyのキャッシュを扱う
キャッシュがクリアされている間に、 Webサイトがキャッシュを再構築します。キャッシュが構築されているが、完全には作成されていないため、削除がまだ進行中であるため、半分が削除されます。
後で何が起こるかは、キャッシュが構築されますが、その一部だけです。 symfonyは、キャッシュは完全に構築され、それをもう作ろうとすることなく実行されると考えていますが、半完成のキャッシュで動作します。削除プロセスは少し長すぎます(〜15秒)ので、誰もウェブサイトにアクセスしてキャッシュを試して作成する必要はありません。
キャッシュが完全に構築され、古いキャッシュが上書きされ、システムはこれらの新しいファイルを古いものとして扱い、一部を削除し、残りの一部は残します。完全にはわからないが、私はこれをどうやって確認するか分からない。例えば
私は教義から別のキャッシュの問題を取得したいそのバンドルを使用しないのであれば、私が取得したいのいずれかのエラーが
The directory "D:\xampp\htdocs\med-app\app\app\cache\dev/jms_diextra/metadata" does not exist.
です。これは、ウェブサイトにアクセスするすべての人が、そのウェブサイトにアクセスすることなくキャッシュを削除するまで表示されます。ウェブサイトへのアクセスが完全にブロックされ、機能しなくなります。
また、ウォームアップについてはどうですか?それにはしばらく時間がかかります。キャッシュがウォームアップされている間に誰かがウェブサイトにアクセスするとどうなりますか?それも紛争を引き起こしませんか?
この問題をどのように処理しますか?私は、apacheサービスを終了し、キャッシュを消去し、そしてApacheを再起動する必要がありますか?どのようにこれをプロダクションのウェブサイトで扱いますか?
編集 私が発見した興味深いものがあります。このバグは、cache/prod
フォルダを削除したときに発生します。フォルダ自体を削除せずにフォルダの内容を削除すると、バグが発生しないようです。なぜ私は不思議です。
私は 'sudo rm -rf app/cache/*'を使ってキャッシュを削除することをお勧めします。時間がかかることが多いと思います。 –
キャッシュを手動でクリアしているので、手動でリフレッシュする必要もあります。 @johnSmithのコメントを参照して、短い時間で自動的にリフレッシュさせるか、完全に無効にします。 – Anil
Windowsではxamppを使っているので 'rm'は使用できません。 –