mirror of
https://github.com/TeaOSLab/EdgeAPI.git
synced 2025-11-05 01:20:25 +08:00
修复SysLocker无法写入新Key的问题
This commit is contained in:
@@ -157,7 +157,7 @@ func (this *SysLockerDAO) Increase(tx *dbs.Tx, key string, defaultValue int64) (
|
|||||||
}
|
}
|
||||||
|
|
||||||
// combine statements to make increasing faster
|
// combine statements to make increasing faster
|
||||||
colValue, err := tx.FindCol(0, "INSERT INTO `"+this.Table+"` (`key`, `version`) VALUES ('"+key+"', "+types.String(defaultValue)+") ON DUPLICATE KEY UPDATE `version`=`version`+"+types.String(sysLockerStep)+"; SELECT `version` FROM `"+this.Table+"` WHERE `key`='"+key+"'")
|
colValue, err := tx.FindCol(0, "INSERT INTO `"+this.Table+"` (`key`, `version`) VALUES ('"+key+"', "+types.String(defaultValue+sysLockerStep)+") ON DUPLICATE KEY UPDATE `version`=`version`+"+types.String(sysLockerStep)+"; SELECT `version` FROM `"+this.Table+"` WHERE `key`='"+key+"'")
|
||||||
if err != nil {
|
if err != nil {
|
||||||
if CheckSQLErrCode(err, 1064 /** syntax error **/) {
|
if CheckSQLErrCode(err, 1064 /** syntax error **/) {
|
||||||
// continue to use seperated query
|
// continue to use seperated query
|
||||||
|
|||||||
@@ -43,6 +43,25 @@ func TestSysLocker_Increase_SQL(t *testing.T) {
|
|||||||
t.Log("after:", v)
|
t.Log("after:", v)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func TestSysLocker_Increase_New_Key(t *testing.T) {
|
||||||
|
var key = "KEY" + types.String(time.Now().Unix())
|
||||||
|
|
||||||
|
var dao = NewSysLockerDAO()
|
||||||
|
value, err := dao.Read(nil, key)
|
||||||
|
if err != nil {
|
||||||
|
t.Fatal(err)
|
||||||
|
}
|
||||||
|
t.Log("before:", value)
|
||||||
|
for i := 0; i < 2; i++ {
|
||||||
|
v, err := dao.Increase(nil, key, 0)
|
||||||
|
if err != nil {
|
||||||
|
t.Log("err:", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
t.Log("after:", v)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
func TestSysLocker_Increase_Cache(t *testing.T) {
|
func TestSysLocker_Increase_Cache(t *testing.T) {
|
||||||
var dao = NewSysLockerDAO()
|
var dao = NewSysLockerDAO()
|
||||||
for i := 0; i < 11; i++ {
|
for i := 0; i < 11; i++ {
|
||||||
|
|||||||
Reference in New Issue
Block a user