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