Я использую следующий код для блокировки и освобождения Redis
var key = "test-x";
RedisValue token = (RedisValue) Guid.NewGuid().ToString();
if(db.LockTake(key, token, duration)) {
try {
// you have the lock do work
} finally {
db.LockRelease(key, token);
}
}
Моя проблема:
В модульном тесте я вызываю этот метод 2 раза. В первый раз всегда работает, но во второй раз, когда я хочу получить блокировку этого конкретного ключа, это не работает. Насколько я понимаю, db.LockRelease должен снимать блокировку, делая ее доступной для второго запроса. Я заметил, что db.LockRelease возвращает false.
Любая идея, что может происходить?