2016-05-22 8 views
0

PHPで書かれた多用のウェブページのキャッシュを管理しようとしています。私は、管理者がCMSで変更を加えたときにプリキャッシュだけを実行したい、PHPコードのキャッシュ可能なセクションをいくつかマークしました。このために、私はこのメソッドを使用します:ファイルを正しく上書きする

私はファイル(例えば "index-source.php")にいくつかのマークが付いたPHPコードがあり、それは単独で解釈可能です。管理者がいくつかの設定を変更すると、マークされたこれらの部分が実行され、結果に置き換えられます(たとえば、DBからメニューアイテムを読み込むMySQLクエリは、生成されたHTMLメニューに置き換えられます)。結果のファイルは新しい "index.php"として保存されますが、これにはまだキャッシュによって最適化できないPHPコードがあります。私の問題 に今

私たちは、このサーバーがPHPでファイルのindex.phpを必要とする例えば毎秒100のリクエストは、あることを意味heavilly負荷、であることを、仮定した場合。このindex.phpをfile_put_contents()を使用して新しいプリキャッシュバージョンで上書きすると、上書きされたファイル/上書きされていないファイルのために一部のリクエストが中断するリスクがありますか?基本的に私は何とか私のPHPファイルを更新し、PHPがそのファイルの古いバージョンまたは完全な新しいバージョンを含むか、またはファイルが上書きされるまで何ミリ秒も待つことを保証したいと思います。私はをしないでください PHPが失敗するか、部分的に上書きされたファイルを読み込む必要があります。

これは可能ですか?ありがとう

+2

毎秒100のリクエスト重く例のみだった –

+0

をロードされていません。 100 req/sが何千もの他の記事の中の一つの記事になることができる状況があります。それはウェブサイト全体の代表サンプルではありませんでした。 –

答えて

0

file_put_contentsはあなたが望むものではありません。

このプロジェクトを見て、あなたが直面している可能性のある問題と選択されたソリューションの感触を知るために、このプロジェクトに目を通してください。

https://github.com/PHPSocialNetwork/phpfastcache

+0

ありがとうございます、私は調べようとします。私はちょうど高度な設定、調整、特定のPHPモジュールまたは設定を必要としない私のCMSのための非常にシンプルで普遍的なキャッシングソリューションとしてこのオプションが欲しいです。 –

+0

さて、私はphpfastcacheの "files"ドライバのソースコードを調べましたが、この問題は解決しません。したがって、この問題は存在しないか、安全であるか、またはこの問題もあります。単にfopen/fwrite/fcloseでキャッシュファイルを上書きするだけで、不完全なファイルの読み込みを防止することはできません。 –

+0

はい、キャッシュを上書きするのは正しいです。ソースファイルを上書きすることはできません。とにかく、私はそれが助けになると思った。 –

関連する問題