總的來說就是頁面上有個操作是依賴父表的狀態改變來控制能不能提交的。但是在現在一個事務里、父表的操作還沒提交。子表插入大量資料需要半分鐘到一分鐘。因為父表的狀態沒有改變。導致頁面上的操作能夠重復操作。重復操作帶來的是資料庫里面大量的重復資料。這個有啥辦法解決嗎?
uj5u.com熱心網友回復:
主表加一個狀態欄位,隔離主表,子表事務(使得主表狀態可以單獨改變)改變主表狀態(正在提交子表資料),提交(考慮增加鎖行)
增加子表資料,提交
改變主表狀態(子表資料提交完成),提交
uj5u.com熱心網友回復:
加一個操作記錄,5 分鐘內不允許重復操作。uj5u.com熱心網友回復:
單機情況加鎖,集群情況加分布式鎖uj5u.com熱心網友回復:
你完全可以先修改父表的狀態獲得行鎖,再進行字表的插入,這樣重復請求也會拿不到鎖堵在修改父表狀態那,而不會重復插入轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/19307.html
標籤:Web 開發
上一篇:從java轉pega值得么
