最近工作中,因?yàn)橹卦嚢粹o后臺反應(yīng)比較慢。用戶一直點(diǎn),我就一直提交到外部系統(tǒng)了。導(dǎo)致了一個重復(fù)提交問題。雖然不一定有用戶這么做,但確實(shí)會有這樣的問題。這個問題,我現(xiàn)在有兩個思路:
一、加一個緩存。在提交之前,查詢該id是否在緩存中。在就直接返回。不在,就允許提交,提交之前將id存入緩存。提交之后,就將該id從緩存中刪除。這么做的場景能夠在一個線程返回之前,不會重復(fù)提交的問題。但不能解決惡意提交的問題。
二、在傳給前端的時候,加一個token,用令牌機(jī)制。主要是生成多個令牌了。這樣,令牌一過來。直接刪除。下次,再重復(fù)提交,就能解決這個問題。可以從根本上防止重復(fù)提交的問題。更有效。
我選擇了第一種,因?yàn)殚_始并沒有更好的思路。當(dāng)時只有這一種方案,現(xiàn)在回想。應(yīng)該采用第二種更好。下次引以為戒。