From e0d201c6fb74c7f7f06202c52a9e1e6e18fc05f9 Mon Sep 17 00:00:00 2001 From: Zheng Weipeng Date: Wed, 24 Sep 2025 13:19:09 +0800 Subject: [PATCH 1/2] Add prefix to lock key --- options.go | 6 ++++++ redislock.go | 3 ++- 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/options.go b/options.go index 07319b0..ae7e2be 100644 --- a/options.go +++ b/options.go @@ -22,3 +22,9 @@ func WithRedsyncOptions(options ...redsync.Option) LockerOption { locker.options = options } } + +func WithKeyPrefix(prefix string) LockerOption { + return func(locker *redisLocker) { + locker.keyPrefix = prefix + } +} diff --git a/redislock.go b/redislock.go index 0350670..fcea5f2 100644 --- a/redislock.go +++ b/redislock.go @@ -75,10 +75,11 @@ type redisLocker struct { rs *redsync.Redsync options []redsync.Option autoExtendDuration time.Duration + keyPrefix string } func (r *redisLocker) Lock(ctx context.Context, key string) (gocron.Lock, error) { - mu := r.rs.NewMutex(key, r.options...) + mu := r.rs.NewMutex(r.keyPrefix+key, r.options...) err := mu.LockContext(ctx) if err != nil { return nil, ErrFailedToObtainLock From fceb1cd4a258b67c7fb3743fa0d29ac14215d893 Mon Sep 17 00:00:00 2001 From: John Roesler Date: Wed, 24 Sep 2025 08:33:35 -0500 Subject: [PATCH 2/2] add go comment --- options.go | 1 + 1 file changed, 1 insertion(+) diff --git a/options.go b/options.go index ae7e2be..bbdd36d 100644 --- a/options.go +++ b/options.go @@ -23,6 +23,7 @@ func WithRedsyncOptions(options ...redsync.Option) LockerOption { } } +// WithKeyPrefix is a LockerOption for adding a prefix to the lock key func WithKeyPrefix(prefix string) LockerOption { return func(locker *redisLocker) { locker.keyPrefix = prefix