ab を同時実行に使用すると、インベントリの削減に一貫性がないことがわかりました。なぜですか?
回答: 主な理由は、同時実行中に複数の PHP プログラムが同じリソースを操作し、リソースの競合とデータの不整合が発生することです。この問題を解決するには、php でファイル ロックを使用できます。複数の PHP プログラムが特定のリソースを操作する場合、最初にロック リソースを取得する必要があります。ロックを取得したプログラムのみがリソースを操作する権限を持ちます。操作が完了したら、他のプログラムが再度ロック リソースを取得できるように、ロック リソースを解放します
1. ロック、テキスト ファイルを作成し、任意の名前を付けます。lock.txt
$key = fopen('lock .txt' ,'r');
do{
$lockStatus = flock($key,LOCK_EX);//ロックを取得します
//phpがCPUを占有するのを防ぐため
usleep(50000);/ /0.05s
一方 (! while (! 1回の操作で複数のプログラムを操作することで、
$ SQL = "Select * from Kucun WHERE GOORE GOORE_ID = 1";
$ resql_query ($ SQL);
$データ['kucun']--;
$data['kucun']--; 在庫が減少しています ";FLOCK ($ Lockstatus, LOCK_UN); // ロックを解放します
}} Else {
{「システムがビジーです!」