課程
/后端開發(fā)
/Java
/Java高并發(fā)秒殺API之web層
秒殺成功后,再次刷新頁面,為什么會把秒殺開始時間改變了??該怎么處理
2017-05-13
源自:Java高并發(fā)秒殺API之web層 5-4
正在回答
準備看高并發(fā) 就發(fā)現(xiàn)了這個問題!nice!??!
reeeex
給大家一個詳細的步驟。。
修改了數(shù)據(jù)庫里seckill表的start_time的屬性就好了,
把DEFAULT?CURRENT_TIMESTAMP?ON UPDATE,改為??DEFAULT '0000-00-00 00:00:00'
不知道為什么當時sql創(chuàng)建完后start_time的屬性是?CURRENT_TIMESTAMP?ON UPDATE。。。
老師當時:
修改后:
原因:
timestamp如果設(shè)置成CURRENT_TIMESTAMP ,當執(zhí)行insert操作的時候,會插入當前系統(tǒng)時間。
如果是ON UPDATE CURRENT_TIMESTAMP,當執(zhí)行update操作的時候,會跟著更新為當前UPDATE操作時的時間。
我們項目里在執(zhí)行減庫存的時候,執(zhí)行的是update語句:
? ? ? ? ? ? update?
? ? ? ? ? ? ? ? seckill?
? ? ? ? ? ? set
? ? ? ? ? ? ? ? number = number -1
? ? ? ? ? ? ?where seckill_id=#{seckillId}
? ? ? ? ? ? ?and? start_time <![CDATA[ <= ]]> #{killTime}
? ? ? ? ? ? ?and end_time>=#{killTime}
? ? ? ? ? ? ?and number>0;
所以會隨著這個秒殺減庫存的操作改變start_time的值。
同樓主,我的項目秒殺成功后"秒殺開始時間"就變成了剛執(zhí)行秒殺的時間了。。。
問題已經(jīng)找到,結(jié)果太出乎意料了,是數(shù)據(jù)庫的秒殺開始時間列為|“更新”了(╯︵╰)(╯︵╰)(╯︵╰)
舉報
Java實現(xiàn)高并發(fā)秒殺API的第三門課,介紹Web層的設(shè)計和實現(xiàn)
3 回答為什么點擊開始秒殺后報404
4 回答第一次點擊開始秒殺后不會出現(xiàn)秒殺成功還是系統(tǒng)異常這些,就是不會跳轉(zhuǎn)
2 回答detail頁面點擊“開始秒殺”后,沒有反應(yīng)
7 回答開始秒殺的按鈕沒看見
1 回答SMM秒殺
Copyright ? 2025 imooc.com All Rights Reserved | 京ICP備12003892號-11 京公網(wǎng)安備11010802030151號
購課補貼聯(lián)系客服咨詢優(yōu)惠詳情
慕課網(wǎng)APP您的移動學習伙伴
掃描二維碼關(guān)注慕課網(wǎng)微信公眾號
2018-03-10
準備看高并發(fā) 就發(fā)現(xiàn)了這個問題!nice!??!
2017-09-28
給大家一個詳細的步驟。。
修改了數(shù)據(jù)庫里seckill表的start_time的屬性就好了,
把DEFAULT?CURRENT_TIMESTAMP?ON UPDATE,改為??DEFAULT '0000-00-00 00:00:00'
不知道為什么當時sql創(chuàng)建完后start_time的屬性是?CURRENT_TIMESTAMP?ON UPDATE。。。
老師當時:
修改后:
原因:
timestamp如果設(shè)置成CURRENT_TIMESTAMP ,當執(zhí)行insert操作的時候,會插入當前系統(tǒng)時間。
如果是ON UPDATE CURRENT_TIMESTAMP,當執(zhí)行update操作的時候,會跟著更新為當前UPDATE操作時的時間。
我們項目里在執(zhí)行減庫存的時候,執(zhí)行的是update語句:
? ? ? ? ? ? update?
? ? ? ? ? ? ? ? seckill?
? ? ? ? ? ? set
? ? ? ? ? ? ? ? number = number -1
? ? ? ? ? ? ?where seckill_id=#{seckillId}
? ? ? ? ? ? ?and? start_time <![CDATA[ <= ]]> #{killTime}
? ? ? ? ? ? ?and end_time>=#{killTime}
? ? ? ? ? ? ?and number>0;
所以會隨著這個秒殺減庫存的操作改變start_time的值。
2017-09-28
同樓主,我的項目秒殺成功后"秒殺開始時間"就變成了剛執(zhí)行秒殺的時間了。。。
2017-05-13
問題已經(jīng)找到,結(jié)果太出乎意料了,是數(shù)據(jù)庫的秒殺開始時間列為|“更新”了(╯︵╰)(╯︵╰)(╯︵╰)