想要“锁定”外部资源,在这种情况下,它将是存储在机架空间云服务器上的“blob” ,类似于 Amazon S3。(使用 Python)
希望像这样处理竞争条件:
- 第一个进程创建资源锁
- 第一个进程开始编辑资源
- 第二个进程尝试编辑同一资源并发现该资源已被锁定。
- 第二个进程请求在锁被取消时得到通知
- 第一个进程完成编辑资源并移除锁
- 第二个进程收到释放资源的通知并能够进行自己的编辑
想使用 Memcached 或 Redis 来创建锁,但也可以使用不同的机制。
其中大部分非常简单,我正在努力解决的部分是如何在删除锁时通知第二个进程,而不是强制它等待并重试。
Redis 具有发布/订阅功能,在这种情况下是否适合使用?
还是有其他方法可以解决这个问题?
非常感谢!