phpで同じアドレスへの複数のリクエストが同時に送信されないようにする方法
タイトルの通り、例えば以下のようなロジックのメソッドがあります。
function test(){
$ a = $db->query('...');//1 または 0 を返します
if($a == 1){
$db- >set(0);//Update 次回このメソッドが実行されるとき、$a は 1 ではなくなります。
//ここに他のロジックがあります。問題は、多くのリクエストがこのメソッドを同時に呼び出すことです。 、このメソッドの設定プロセスが少し長い場合、ここでのロジックは「複数回実行されます」となり、一度しか実行できないという期待と矛盾します。
}
}
この状況に通常どのように対処しますか?この状況は、投票や賞品に対するセキュリティ要件が高い場合によく発生します。
セッションを使用する場合、リクエストは異なる IP から送信される可能性があります。memcached などのキャッシュを使用して状態を保存すると、ネットワーク遅延も発生します。
-----解決策---------
終わり!
あなたは神レベルの思考力を持った人です!私たちのような人間には、あなたが何を考え、何を求めているかを推測することはできません。傑作が完成したら、それを私たち一般人に見せなければなりません。 。