サイトの投票メカニズムを構築しています。Stackoverflow で見られる同様のもの。
たとえば、ユーザーが上矢印をクリックすると、vote = True
. 彼がもう一度クリックすると、vote = None
. 投票を非常に迅速に送信する場合を除いて、アプリは正常に動作しています。
矢印を非常に速くクリックし、データをログに記録して投票がどのように行われているかを確認しようとしました。残念ながら、いくつかの不正行為が見られます。高速とは、つまり、数秒間停止することなく、矢印を連続してクリックすることです!
予想されるログ データは次のようになります。
vote=True
vote=None
vote=True
vote=None
..
しかし、私はそれを次のように観察しました
vote=True
vote=True
vote=None
vote=None
2 番目のケースとして言及された観察されたログ データは、少し順不同のようです。これは、django によって受信された要求がキューとして処理されていないことを意味している可能性があります。私たちの場合、これは少し危険です。または、データベースの保存に時間がかかっており、その間に別のリクエストが処理され、エラーが発生しています。
あなたが私の問題を理解していることを願っています。それで、ここで何が起こっているのか、それを制御する方法を教えていただけないでしょうか。