如何用python 来实现这个功能? 谢谢! 5C

各位,请问用Python如何来实现这个功能?

多个客户端位于不同的Linux服务器上, 都需要去访问局域网内某一台Linux服务器上的同一个资源,该资源每次只允许1个客户端的访问, 有客户端正在使用该资源时
其他客户端都处于等待状态,直到资源释放.

请问哪位能分享下用python 来实现这个功能的思路或例子,非常感谢!

在Labview编程中我是利用Labview自带的DataSocket server,然后利用
DataSocket Read 去读那个(共享变量,URL/DataSocket连接标识)状态,如果为False(表示可用),则设置为True(DataSocket Write),然后使用该资源,
使用完毕设置为False(DataSocket Write).

2个回答

用消息队列或者 broker 模式

这个就是一个很明显的分布式锁的应用。你可以用python调用redis的分布式锁。其他客户端等待的时候需要考虑有锁客户端发生异常,导致不能正确释放锁。

用redis的setnx来判断一个变量值是否被锁住。

所以一般再用redis的锁时,setex设置一个超时机制,当时间到了,这个变量会自动del,这样锁就释放了,其他客户端就可以竞争锁。

官方有提供一个实现,可以参考。https://github.com/SPSCommerce/redlock-py

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐