作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我希望能够编写这样的代码
using (await LockAsync(x.Id))
{
// here goes code that is unsafe with respect to x.Id
// because it can be executed in multiple threads on
// the same instance or on multiple instances (e.g.
// multiple Azure Functions
}
我知道有一些开箱即用的方法可以在不使用 key 的情况下锁定整个执行上下文(例如函数中的 [ActivityTrigger]
),并且我知道我可以使用 blob 滚动自己的 key 锁租赁,但是 key 锁有开箱即用的方法吗?
最佳答案
可以使用Redis分布式锁。
包裹RedLock.net完全满足您的需求:
var resource = "the-thing-we-are-locking-on";
var expiry = TimeSpan.FromSeconds(30);
using (var redLock = await redlockFactory.CreateLockAsync(resource, expiry)) // there are also non async Create() methods
{
// make sure we got the lock
if (redLock.IsAcquired)
{
// do stuff
}
}
关于c# - Azure 是否有开箱即用的 key 分布式锁定方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53510916/
当我开始我的 openbox session 时,我需要这样的东西: firefox -p Profile 1 #Open in workspace 4 firefox -p profile 2 #O
我是一名优秀的程序员,十分优秀!