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使用turtule画五角星的方法
Jul 09 Python
python生成器表达式和列表解析
Mar 10 Python
使用Python从有道词典网页获取单词翻译
Jul 03 Python
详解Python 实现元胞自动机中的生命游戏(Game of life)
Jan 27 Python
Python中出现IndentationError:unindent does not match any outer indentation level错误的解决方法
Apr 18 Python
Django如何使用redis作为缓存
May 21 Python
OpenCV图片漫画效果的实现示例
Aug 18 Python
python判断元素是否存在的实例方法
Sep 24 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
python3 os进行嵌套操作的实例讲解
Nov 19 Python
学点简单的Django之第一个Django程序的实现
Feb 24 Python
python基于tkinter实现gif录屏功能
May 19 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
与空气斗智斗勇的经典《Overlord》,传说中的“无稽之谈”
2020/04/09 日漫
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
yii2整合百度编辑器umeditor及umeditor图片上传问题的解决办法
2016/04/20 PHP
phpstorm最新激活码分享亲测phpstorm2020.2.3版可用
2020/11/22 PHP
javascript下IE与FF兼容函数收集
2008/09/17 Javascript
Javascript继承机制的设计思想分享
2011/08/28 Javascript
为原生js Array增加each方法
2012/04/07 Javascript
jquery怎样实现ajax联动框(一)
2013/03/08 Javascript
一个JS函数搞定网页标题(title)闪动效果
2014/05/13 Javascript
浅析AngularJS中的指令
2016/03/20 Javascript
基于bootstrap的文件上传控件bootstrap fileinput
2016/12/23 Javascript
基于iScroll实现下拉刷新和上滑加载效果
2017/07/18 Javascript
angularjs 页面自适应高度的方法
2018/01/17 Javascript
JS实现DOM删除节点操作示例
2018/04/04 Javascript
JavaScript 变量,数据类型基础实例详解【变量、字符串、数组、对象等】
2020/01/04 Javascript
小程序使用分包的示例代码
2020/03/23 Javascript
vue任意关系组件通信与跨组件监听状态vue-communication
2020/10/18 Javascript
Python字符转换
2008/09/06 Python
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python实现判断一个字符串是否包含子串的方法总结
2017/11/21 Python
对pandas进行数据预处理的实例讲解
2018/04/20 Python
python爬虫 正则表达式解析
2019/09/28 Python
python读取图片的几种方式及图像宽和高的存储顺序
2020/02/11 Python
python和php学习哪个更有发展
2020/06/17 Python
Selenium之模拟登录铁路12306的示例代码
2020/07/31 Python
windows+vscode安装paddleOCR运行环境的步骤
2020/11/11 Python
美国餐厅用品和厨房设备批发网站:KaTom Restaurant Supply
2018/01/27 全球购物
HSRP的含义以及如何工作
2014/09/10 面试题
中学生寄语大全
2014/04/03 职场文书
2014旅游局领导班子四风问题对照检查材料思想汇报
2014/09/19 职场文书
公司租房协议书
2014/10/14 职场文书
岗位聘任报告
2015/03/02 职场文书
大国崛起英国观后感
2015/06/02 职场文书
Redis模仿手机验证码发送的实现示例
2021/11/02 Redis
Python实现信息管理系统
2022/06/05 Python
Python通用验证码识别OCR库ddddocr的安装使用教程
2022/07/07 Python