PHPでインターフェースをロックして、インターフェースが同時に同じ人からのリクエストを1つだけ処理できるようにするにはどうすればよいですか?
現在、私が使用しているのは、セッションに入るたびに、値が存在するかどうかを確認することです。存在しない場合、このリクエストは実行されません。 、値を設定し、以降の操作を実行します。
リーリーこれは可能だと思いました。セッションは Redis に非常に迅速に保存されます。つい先ほど眠れずにいじってみたところ、ユーザーが同じリクエストに対して複数のリクエストを実行できることがわかりました。同時にインターフェースも。
1人から同時に複数のリクエストが必要な場合は、最初のリクエストのみが処理されます。同一人物かどうかはセッションに基づいて判断してください。
これをどうやって確認しますか?
返信内容:
現在、私が使用しているのは、セッションに入るたびに、値が存在するかどうかを確認することです。存在しない場合、このリクエストは実行されません。 、値を設定し、以降の操作を実行します。
リーリーこれは可能だと思いました。セッションは Redis に非常に迅速に保存されます。つい先ほど眠れずにいじってみたところ、ユーザーが同じリクエストに対して複数のリクエストを実行できることがわかりました。同時にインターフェースも。
1人から同時に複数のリクエストが必要な場合は、最初のリクエストのみが処理されます。同一人物かどうかはセッションに基づいて判断してください。
これをどうやって確認しますか?
データベースが関係する場合は、ロックを使用するか、すべてのリクエストをキューに入れて 1 つずつ処理します
考えてみたら、入場時間と退場時間の2つを書こうかなと思いました。
アクセスは開始時刻の書き込みを開始し、出口は終了時刻を書き込みます。
最初の訪問は空である必要があると仮定します。 start=02:26:30 end=02:26:50
その後、訪問を再開始するときに次のように判断します。
<1>If start>end 、があることを示しますアクセス中に別の状況が発生した場合、つまり、アクセスが中断され、終了時刻を書き込む時間がないため、ここで start>end&&start-end>100 などの初期化判断を行って、end を現在の時刻に直接変更する必要があります。の場合、無料であり、アクセスが実行されます
<2>start
データベースを使用して処理を実行しないように設定できます。
标识
, 用户进入该请求时先去检查数据库, 存在标识
キャッシュを使用して処理中のユーザーの ID を保存し、フィルターを通してその ID を操作すると、ユーザーのリクエストが届きます。フィルターが ID がキャッシュにないと判断した場合は追加され、ID は処理後に削除されます。
実際のニーズは何かということですが、API の観点から説明しないほうが簡単かもしれません。
あなたの質問から判断すると、あなたは愚かな解決策を思いついたはずです。本来のニーズを明記することをお勧めします。
1. Mysql を使用する場合は、リクエストが完了した後、他のリクエストを実行する前にロックを解除する必要があります。
2. リクエストが到着したときに、カウンターを追加できます。リクエストが終了したら、この方法をお勧めします
3. さらに、同じユーザーによる各リクエストもブロックされます。
ファイルを入力した後、操作が完了した後にファイルロックを使用してファイルのロックを解除します。次のユーザーは引き続きアクセスしてロックを続けることができます

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック











PHP 8.4 では、いくつかの新機能、セキュリティの改善、パフォーマンスの改善が行われ、かなりの量の機能の非推奨と削除が行われています。 このガイドでは、Ubuntu、Debian、またはその派生版に PHP 8.4 をインストールする方法、または PHP 8.4 にアップグレードする方法について説明します。

ファイルのアップロードを行うには、フォーム ヘルパーを使用します。ここではファイルアップロードの例を示します。

CakePHP は、PHP 用のオープンソース フレームワークです。これは、アプリケーションの開発、展開、保守をより簡単にすることを目的としています。 CakePHP は、強力かつ理解しやすい MVC のようなアーキテクチャに基づいています。モデル、ビュー、コントローラー

Visual Studio Code (VS Code とも呼ばれる) は、すべての主要なオペレーティング システムで利用できる無料のソース コード エディター (統合開発環境 (IDE)) です。 多くのプログラミング言語の拡張機能の大規模なコレクションを備えた VS Code は、
