StackExchange.Redis Транзакция, как наблюдать за объектом и не выполнять его, если объект был изменен другим потоком. - PullRequest
0 голосов
/ 27 сентября 2019

Единственные примеры, которые я вижу, - это использование условия HashNotExists и установка значения Hash с помощью HashSetAsync.
Я не могу понять, как мне сделать то же самое для значения без хэша.Мне нужно наблюдать за объектом, который является двоичным сериализованным (хранящим двоичный сериализованный объект в кэше).
В настоящее время я использую LockTake / LockRelease для управления параллелизмом, но это кажется плохим решением для длительной работы.

var newId = CreateNewId();
var tran = db.CreateTransaction();
tran.AddCondition(Condition.HashNotExists(custKey, "UniqueID"));
tran.HashSetAsync(custKey, "UniqueID", newId);
bool committed = tran.Execute();
// ^^^ if true: it was applied; if false: it was rolled back

https://stackexchange.github.io/StackExchange.Redis/Transactions.html

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...