2016-10-27 61 views
3

./bin/console cache:clear --env=prodrm -rf var/cache/prod/*の違いはどれですか?コンソールコマンドは非常に遅いです。 Bashコマンドは高速です。ですから... rmの代わりにcache:clearを使用するのはなぜですか?Symfonyのキャッシュをクリア: `cache:clear`または` rm -rf`?

+0

「php app/console blahblah」、「php app/console make coffee」、「php app/console make my dreams come true」のように、どこでも読んでください。 "公式の"最良のアプローチは次のようなものでなければなりません: 'php app/console doctrine:cache:clear-metadata && ph app/console doctrine:cache:clear-query && php app/console doctrine:cache:clear-result'彼らの言うことを信じてはいけません。私はリバースプロキシとしてApacheを使用していましたが、次にnginxをニスしました。symfonyのすべてのバージョンを2.3から3にアップグレードしました。決してこれまでにない。実際の効果的なソリューションですか?私の次のコメントで –

+1

...実際の効果的な解決策は? 'rm -rf ./app/cache/dev/*; rm -rf。/ app/cache/prod/* 'を実行して、キャッシュを空にしても何でもWebサーバーを再起動します。これが有効な唯一の方法です。ベストではなく、 "ベストプラクティスに従う、サンタクロースを信じる、完璧を信じる"ではなく、機能するものではありません。そしておそらく、それがFacebookの壁面に「完璧よりも良い」と書かれているのではないかと推測しています。私はキャッシュをクリアにして**動作させる**。私は真剣に "PHPアプリケーション/コンソールのみ"の誇大宣伝を使用してうんざりしています。そして、あなたがWindowsの下にいれば、あなたはいつもこのようになります。symfonyの4yoユーザーを信じてください。 –

+0

は完璧に動作する 'rm -rf'に同意します。問題は、使用中のファイルを削除することができないことです。コマンドを複数回起動することで解決しました –

答えて

6

cache:clear以前に作成されたキャッシュ項目をワイプしますが、でもキャッシュウォームアップを行います。この時点で、キャッシュはすでに事前設定されているため、アプリケーションは非常に高速に読み込まれます。

一方、rm -rfはジョブの一部のみを実行します。この後最初にアプリケーションを読み込もうとすると、パフォーマンスに影響が出るはずです。

もう1つのことを指摘したいと思います。権限。たとえば、rootとしてログインしていて、setfacl(または他の方法)でアクセス権を設定しなかった場合、cache:clearはおそらくrootが所有するキャッシュアイテムを作成します。これは問題になる可能性があります。

希望は、これは...少し助け

4

「キャッシュ:クリア」コマンドは、キャッシュを削除するだけでなく、symfonyは後を作成する必要がないように、彼らは通常、更新されたキャッシュデータを構築する(ウォームアップ)最初のリクエストが来ます。これは、キャッシュフォルダの下にある "rm -rf"ファイルを単に削除するよりも時間がかかります。 このコマンドで事前にキャッシュを作成していない場合は、そのコマンドを高速に終了することもできますが、最初の要求を処理するには時間がかかります。少なくとも、展開のプロセス全体では、明確な:

http://symfony.com/doc/current/console/usage.html

ので、通常はキャッシュを実行することをお勧めします。 rmコマンドを使用するのは、通常、一部のファイルのアクセス許可が間違っている場合(つまり、間違ったユーザーでコマンドを実行した可能性がある)、選択肢が残っていない場合のみです。

関連する問題