ホームページ >バックエンド開発 >PHPチュートリアル >PHPでキャッシュを定期的に削除するにはどうすればよいですか? ?
php は Windows 環境で実行されます:
例:
ユーザーのアバターを設定するとき、ユーザーはソース ファイルをアップロードし、サーバーはソース ファイルと変更されたファイルを保存します。ソース ファイルは tmp_file ファイル ディレクトリに保存され、変更されたファイルは header_file ディレクトリに配置されます。
tmp_file に保存されているソースファイルを定期的にクリーンアップしたいのですが? ?やり方が分かりませんか? ?次のことを達成することは可能ですか:
リーリー使用する場合:
リーリー確かに定期的に掃除できます。ただし、一度実行した後、再度実行するまでに 60 秒待つ必要があります。短期間に急に大量の画像を処理する場合、ブロックされて実行できなくなります。
メインスレッドがスタックして実行されなくなることなく、時間のかかるスレッドを処理するために、JS ワークスレッドのような追加の JS スクリプトを PHP で実行できるようにするにはどうすればよいですか? ?
php は Windows 環境で実行されます:
例:
ユーザーのアバターを設定するとき、ユーザーはソース ファイルをアップロードし、サーバーはソース ファイルと変更されたファイルを保存します。ソース ファイルは tmp_file ファイル ディレクトリに保存され、変更されたファイルは header_file ディレクトリに配置されます。
tmp_file に保存されているソースファイルを定期的にクリーンアップしたいのですが? ?やり方が分かりませんか? ?次のことを達成することは可能ですか:
リーリー使用する場合:
リーリー確かに定期的に掃除できます。ただし、一度実行した後、再度実行するまでに 60 秒待つ必要があります。短期間に急に大量の画像を処理する場合、ブロックされて実行できなくなります。
メインスレッドがスタックして実行されなくなることなく、時間のかかるスレッドを処理するために、JS ワークスレッドのような追加の JS スクリプトを PHP で実行できるようにするにはどうすればよいですか? ?
スケジュールされたタスクには crontab
を使用します。これが最良の選択です。
PHP は Web 環境では実行できません。シェルを作成してから cronjob を実行します
60 秒間滞在したい理由は何ですか? 何も考えていない場合は、最後に unlink
だけ言ってください。このシナリオでは、コードを複雑にする必要はないと思います。
memcache を直接使用しないのはなぜですか?それ自体でタイムアウト キャッシュを自動的に削除できます
アップロード時間を保存し、現在時刻とアップロード時刻の時差を求めます。
時間差が60秒を超える場合は削除します。
明らかに、元の投稿者は Windows をインストールしていて、cgwin のインストールや crontab の使用を望んでいません。次のことを試してみてください。
「if(ランダム(1,10)==6){
」
リーリー
「
」
それを自分で使用することもできます: 時間シード...特定のファイルのタッチ時間...など
すべてのユーザーは待つ必要はありません...
ディスク I/O が特に高く、サーバーの負荷が高い場合は、crontab で削除することをお勧めします。