現在、私が使用しているのは、セッションに入るたびに、値が存在するかどうかを確認することです。存在しない場合、このリクエストは実行されません。 、値を設定し、以降の操作を実行します。
リーリーこれは可能だと思いました。セッションは 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. さらに、同じユーザーによる各リクエストもブロックされます。
ファイルを入力した後、操作が完了した後にファイルロックを使用してファイルのロックを解除します。次のユーザーは引き続きアクセスしてロックを続けることができます