mirror of
				https://github.com/TeaOSLab/EdgeAPI.git
				synced 2025-11-04 16:00:24 +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