Python实现脚本锁功能(同时只能执行一个脚本)


Posted in Python onMay 10, 2017

1. 文件锁

脚本启动前检查特定文件是否存在,不存在就启动并新建文件,脚本结束后删掉特定文件。

通过文件的判断来确定脚本是否正在执行。

方法实现也比较简单,这里以python脚本为例

#coding=utf-8
 #
 # 文件锁脚本测试
 #
 import os  #操作系统
 import time
 lockfilepath = "/opt/lock.txt";
 #判断文件是否存在
 if os.path.exists(lockfilepath):
  #文件存在,说明脚本正在执行
  print("脚本正在执行")
 else:
  #文件不存在,创建文件,并执行任务。
  lockfile = open(lockfilepath,"w+");
  print ("文件锁 任务模拟sleep 10s");
 time.sleep(10);
  print ("任务模拟结束 sleep over ");
  #删除文件
  os.remove(lockfilepath);

文件锁测试结果

Python实现脚本锁功能(同时只能执行一个脚本)

Python实现脚本锁功能(同时只能执行一个脚本)

2.端口占用

使用socket模块,在脚本执行时,给系统中增加一个端口,在脚本执行完后释放。

脚本执行时,去创建这个端口,如果脚本还在执行,端口会创建失败,提示脚本还在执行。

实现方法也比较简单:Python脚本

#coding=utf-8
 import time
 import socket 
 suo = 1
 try:
  global hyf_suo 
  hyf_suo = socket.socket()
  addr = ('',98889)
  hyf_suo.bind(addr);
  suo = 1;
 except:
  suo = 2;
  print('already has an instance')
 
 if(suo==1):
  print ("锁住 sleep ");
  time.sleep(10);
  print ("sleep over ");
 else:
  print("已经加锁了");

 端口锁测试结果

Python实现脚本锁功能(同时只能执行一个脚本)

Python实现脚本锁功能(同时只能执行一个脚本)

结论

以上两种方法都能实现脚本锁的功能,个人更倾向于使用第二种方法。端口锁的方法。

以上所述是小编给大家介绍的Python实现脚本锁功能(同时只能执行一个脚本),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Python 相关文章推荐
解决windows下Sublime Text 2 运行 PyQt 不显示的方法分享
Jun 18 Python
在Django的上下文中设置变量的方法
Jul 20 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
http请求 request失败自动重新尝试代码示例
Jan 25 Python
对numpy Array [: ,] 的取值方法详解
Jul 02 Python
Python图像处理之图片文字识别功能(OCR)
Jul 30 Python
YUV转为jpg图像的实现
Dec 09 Python
Python3将jpg转为pdf文件的方法示例
Dec 13 Python
Python编程快速上手——强口令检测算法案例分析
Feb 29 Python
python正则表达式 匹配反斜杠的操作方法
Aug 07 Python
基于Python采集爬取微信公众号历史数据
Nov 27 Python
Python内置数据结构列表与元组示例详解
Aug 04 Python
python 3.5下xadmin的使用及修复源码bug
May 10 #Python
Python遍历文件夹和读写文件的实现方法
May 10 #Python
python中requests小技巧
May 10 #Python
Python实现针对中文排序的方法
May 09 #Python
浅谈python socket函数中,send与sendall的区别与使用方法
May 09 #Python
Python利用operator模块实现对象的多级排序详解
May 09 #Python
网站渗透常用Python小脚本查询同ip网站
May 08 #Python
You might like
PHP下打开URL地址的几种方法小结
2010/05/16 PHP
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
php的ZipArchive类用法实例
2014/10/20 PHP
RR vs IO BO3 第二场2.13
2021/03/10 DOTA
基于jquery的关于动态创建DOM元素的问题
2010/12/24 Javascript
js实现鼠标拖动图片并兼容IE/FF火狐/谷歌等主流浏览器
2013/06/06 Javascript
jquery实现select选中行、列合计示例
2014/04/25 Javascript
引用其它js时如何同时处理多个window.onload事件
2014/09/02 Javascript
常用原生JS兼容性写法汇总
2016/04/27 Javascript
AngularJS 如何在控制台进行错误调试
2016/06/07 Javascript
JS+CSS3实现超炫的散列画廊特效
2016/07/16 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
Vue组件化通讯的实例代码
2017/06/23 Javascript
详解vue组件通信的三种方式
2017/06/30 Javascript
使用Vue写一个datepicker的示例
2018/01/27 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
基于原生JS封装的Modal对话框插件的示例代码
2020/09/09 Javascript
Python解释执行原理分析
2014/08/22 Python
python线程池(threadpool)模块使用笔记详解
2017/11/17 Python
mac下如何将python2.7改为python3
2018/07/13 Python
Pyqt清空某一个QTreeewidgetItem下的所有分支方法
2019/06/17 Python
python实现kNN算法识别手写体数字的示例代码
2019/08/16 Python
python matplotlib如何给图中的点加标签
2019/11/14 Python
基于python实现语音录入识别代码实例
2020/01/17 Python
Python函数默认参数常见问题及解决方案
2020/03/26 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
Python如何避免文件同名产生覆盖
2020/06/09 Python
弄清Pytorch显存的分配机制
2020/12/10 Python
html5+css3之动画在webapp中的应用
2014/11/21 HTML / CSS
印尼美容产品购物网站:PerfectBeauty.id
2017/12/01 全球购物
化学专业毕业生自荐信
2013/11/15 职场文书
文秘应聘自荐书范文
2014/02/18 职场文书
《愚公移山》教学反思
2014/02/20 职场文书
大学生两会精神学习心得体会
2014/03/10 职场文书
公司周年庆典策划方案
2014/05/17 职场文书
手写实现JS中的new
2021/11/07 Javascript