0

コードをデプロイし、xcache をクリアしても、コードが古いファイルの一部を呼び出しているというこの奇妙な問題に直面しています。この動作はランダムです。xcache を確認しましたが、毎回クリアになっていますが、それでも問題なく動作する場合があり、古いファイルにアクセスしようとすると、うまくいく場合もあります。この問題は js や css では発生しませんが、バージョンは維持されていますが、php のクラスと関数の場合です。

私はウェブから、またはそうでなければこれが起こっている理由をまったく理解していません.すべてのファイルにも触れてみましたが、同じ問題がより頻繁に存在します. xcache で LAMP 環境を使用し、capistrano を介してリリースを展開しています。管理者から xcache clear を確認しました。さまざまなバージョンの xcache を試しましたが、役に立ちませんでした。

次のような場合が考えられますが、これに対する解決策もありません。リクエストの処理に時間がかかる場合は、その間にシンボリックリンクの変更を展開し、このリクエストに別のファイルが含まれている場合は、古いファイルと新しいファイルの両方が含まれます。問題の原因。

さらに移動できる場所を提案してください。

4

1 に答える 1

1

使用中にファイルを変更すると、必ず問題が発生します。

シンボリック リンクを切り替える前に、アプリケーションを完全に停止する必要があります。

Capistrano コミュニティでは、これは「メンテナンス モード」として知られています。この概念の実装に関する多くの情報を (Google で) 見つけることができます。

基本的に、アプリケーションを「メンテナンス モード」に設定します。これにより、アプリケーションは PHP に到達することなく (Web) リクエストをかわし、実行時間の長いプロセス (cron、デーモンなど) を停止します。これをどのように実装するかは、アプリケーションのアーキテクチャに大きく依存します。

アプリケーションが完全にアイドル状態になったら、安全にシンボリック リンクを切り替え、キャッシュをクリアしてからスピンアップします。

于 2014-07-10T06:52:09.297 に答える