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 相关文章推荐
实例Python处理XML文件的方法
Aug 31 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
简单谈谈python中的Queue与多进程
Aug 25 Python
详解Python中的Numpy、SciPy、MatPlotLib安装与配置
Nov 17 Python
Php多进程实现代码
May 07 Python
Python嵌套列表转一维的方法(压平嵌套列表)
Jul 03 Python
pygame实现简易飞机大战
Sep 11 Python
python opencv 简单阈值算法的实现
Aug 04 Python
如何在python中实现随机选择
Nov 02 Python
python中的socket实现ftp客户端和服务器收发文件及md5加密文件
Apr 01 Python
Python格式化输出--%s,%d,%f的代码解析
Apr 29 Python
PyQt5实现登录页面
May 30 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
Symfony2创建基于域名的路由相关示例
2016/11/14 PHP
PHPMailer发送邮件
2016/12/28 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
js查找父节点的简单方法
2008/06/28 Javascript
ext 同步和异步示例代码
2009/09/18 Javascript
基于jquery的滚动新闻列表
2010/06/19 Javascript
JQuery获取样式中的background-color颜色值的问题
2013/08/20 Javascript
关于IE中getElementsByClassName不能用的问题解决方法
2013/08/26 Javascript
PHPMyAdmin导入时提示文件大小超出PHP限制的解决方法
2015/03/30 Javascript
Js与Jq获取浏览器和对象值的方法
2016/03/18 Javascript
jQuery点击弹出层弹出模态框点击模态框消失代码分享
2017/01/21 Javascript
深入理解nodejs中Express的中间件
2017/05/19 NodeJs
Node.js利用js-xlsx处理Excel文件的方法详解
2017/07/05 Javascript
jquery应用实例分享_实现手风琴特效
2018/02/01 jQuery
详解vue-router 初始化时做了什么
2018/06/11 Javascript
js调用设备摄像头的方法
2018/07/19 Javascript
TypeScript中的方法重载详解
2019/04/12 Javascript
小程序选项卡以及swiper套用(跨页面)
2020/06/19 Javascript
VsCode里的Vue模板的实现
2020/08/12 Javascript
关于Python中浮点数精度处理的技巧总结
2017/08/10 Python
用python写测试数据文件过程解析
2019/09/25 Python
python框架Django实战商城项目之工程搭建过程图文详解
2020/03/09 Python
python 两种方法删除空文件夹
2020/09/29 Python
Opencv 图片的OCR识别的实战示例
2021/03/02 Python
在HTML5 canvas里用卷积核进行图像处理的方法
2018/05/02 HTML / CSS
html5生成柱状图(条形图)效果的实例代码
2016/03/25 HTML / CSS
英国现代绅士品牌:Hackett
2017/12/17 全球购物
捷克母婴用品购物网站:Feedo.cz
2020/12/28 全球购物
专科毕业生就业推荐信
2013/11/01 职场文书
观看信仰心得体会
2014/09/04 职场文书
2014年计划生育工作总结
2014/11/14 职场文书
结婚通知短信怎么写
2015/04/17 职场文书
公司仓库管理制度
2015/08/04 职场文书
2015年学校消防安全工作总结
2015/10/14 职场文书
2019年家电促销广告语集锦
2019/10/21 职场文书
2019年最新感恩节祝福语(28句)
2019/11/27 职场文书