diff --git a/lock/db/sql.go b/lock/db/sql.go index a77ae9e2c878ef85f3b176b3b9c41244062b62d3..e1afa9ec68cda1dc7e5ddf7a23d9fce171e3f41d 100644 --- a/lock/db/sql.go +++ b/lock/db/sql.go @@ -88,7 +88,7 @@ func (r *DBLock) lock(ctx context.Context, key string) (keyLock interface{}, err // resource updated by others return nil, ErrConflict } - return lock, nil + return &lock, nil } func (r *DBLock) UnLock(ctx context.Context, keyLock interface{}) error { diff --git a/lock/db/sql_test.go b/lock/db/sql_test.go index 36afe7850f091c93acbb9884017102360accb0fa..a037b5e9645710d4d106963a29f7d1b39b49103f 100644 --- a/lock/db/sql_test.go +++ b/lock/db/sql_test.go @@ -35,8 +35,11 @@ func TestLock(t *testing.T) { assert.NoError(t, err) r := l.(*ResourceLock) assert.True(t, len(r.LockerID) > 0) - // 重试5次,至少耗时500ms - _, err = lock.Lock(context.Background(), "abc") + // 测试lock 过期场景 + time.Sleep(1 * time.Second) + l, err = lock.Lock(context.Background(), "abc") + assert.NoError(t, err) + err = lock.UnLock(context.Background(), l) assert.NoError(t, err) }