文件互斥锁是什么?  他的应用场景又是什么? 

这是我前段是开发的一个模块,主要用途是避免了多个程序多个进程需要数据安全.  可能场景我没有描述清楚,简单描述就是,解决多进程下需要的互斥锁的场景.. 对于互斥锁,我开发的,提交过的项目代码已经够多了,比如redis分布式锁,etcd分布式锁,但是就没有一个本地互斥锁 ,正好有实现的代码,也一块开源了.


尤其不严谨,python本地文件互斥锁后期会有所修改,请到原文链接中查看更新, http://xiaorui.cc/2015/11/29/%E4%BD%BF%E7%94%A8python-fcntl%E5%AE%9E%E7%8E%B0%E6%9C%AC%E5%9C%B0%E6%96%87%E4%BB%B6%E4%BA%92%E6%96%A5%E9%94%81/


代码已经推送到github和pypi上了.

https://github.com/rfyiamcool/local_mutex

https://pypi.python.org/pypi/local_mutex


我要开始正经的介绍这项目了,本地互斥锁的英文名是, local_mutex


功能介绍,  一个简单的本地锁, 通过fcntl针对文件实现加锁. 可以起到多个进程下互斥锁的效果. 需要强烈注意的是,多线程下是无效的,原因?  自己查fcntl的特性,再说也没必要用fcntl内核锁


Usage:
最简单的例子,适合一个程序同时跑一个的场景.

使用wait参数不停的试图获取Lock, 直到获取锁.


使用with关键词

有个哥们发邮件一直问我,如果是多线程环境, 怎么搞?  你mei呀,不知道threading下有个Lock()互斥锁呀….  直接用threading的Lock就搞定了…  

就这样了,有兴趣的朋友可以用用.   另外这个场景也比较适合crontab下,避免除非执行的效果. 



对Python及运维开发感兴趣的朋友可以加QQ群 : 478476595 !!!

另外如果大家觉得文章对你有些作用!   帮忙点击广告. 一来能刺激我写博客的欲望,二来好维护云主机的费用.
如果想赏钱,可以用微信扫描下面的二维码. 另外再次标注博客原地址  xiaorui.cc  ……   感谢!

python使用fcntl管理pidfile多进程文件锁

最近在折腾服务端,后端启动的时候,常常会遇到一个问题,由于启动方式不是通过标准的/etc/init.d/monitor start 启动的,是export PYTHONPATH=pwd;python ...

阅读全文