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实现获取某天是某个月中的第几周
Feb 11 Python
python 遍历字符串(含汉字)实例详解
Apr 04 Python
Python探索之ModelForm代码详解
Oct 26 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
Nov 14 Python
PyTorch学习笔记之回归实战
May 28 Python
详解Python logging调用Logger.info方法的处理过程
Feb 12 Python
Python实现K折交叉验证法的方法步骤
Jul 11 Python
python查看数据类型的方法
Oct 12 Python
简单了解python元组tuple相关原理
Dec 02 Python
Python标准库json模块和pickle模块使用详解
Mar 10 Python
利用Python裁切tiff图像且读取tiff,shp文件的实例
Mar 10 Python
详解python字符串驻留技术
May 21 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
水质对咖图啡风味的影响具体有哪些
2021/03/03 冲泡冲煮
一个简单的自动发送邮件系统(三)
2006/10/09 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
2018/02/07 PHP
Laravel框架生命周期与原理分析
2018/06/12 PHP
Yii框架的布局文件实例分析
2019/09/04 PHP
laravel 实现根据字段不同值做不同查询
2019/10/23 PHP
javascript 动态修改样式和层叠样式表代码
2010/04/27 Javascript
jQuery 无刷新分页实例代码
2013/11/12 Javascript
jQuery中DOM操作实例分析
2015/01/23 Javascript
JS组件Bootstrap实现弹出框和提示框效果代码
2015/12/08 Javascript
Vue.js每天必学之过渡与动画
2016/09/06 Javascript
javascript 数组去重复(在线去重工具)
2016/12/17 Javascript
BootStrap学习笔记之nav导航栏和面包屑导航
2017/01/03 Javascript
JavaScript Uploadify文件上传实例
2017/02/28 Javascript
在Vue中使用echarts的实例代码(3种图)
2017/07/10 Javascript
解决微信小程序防止无法回到主页的问题
2018/09/28 Javascript
使用mixins实现elementUI表单全局验证的解决方法
2019/04/02 Javascript
JS forEach跳出循环2种实现方法
2020/06/24 Javascript
[01:51]开启你的城市传奇 完美世界城市挑战赛开始报名
2018/10/09 DOTA
Python 私有函数的实例详解
2017/09/11 Python
一百行python代码将图片转成字符画
2021/02/19 Python
python基于property()函数定义属性
2020/01/22 Python
浅谈sklearn中predict与predict_proba区别
2020/06/28 Python
Pandas替换及部分替换(replace)实现流程详解
2020/10/12 Python
python进行二次方程式计算的实例讲解
2020/12/06 Python
css和css3弹性盒模型实现元素宽度(高度)自适应
2019/05/15 HTML / CSS
意大利大型购物中心:Oliviero.it
2017/10/19 全球购物
六年级数学教学反思
2014/02/03 职场文书
日语专业求职信
2014/07/04 职场文书
泸县召开党的群众路线教育实践活动总结大会新闻稿
2014/10/21 职场文书
详解TypeScript中的类型保护
2021/04/29 Javascript
详解CSS不定宽溢出文本适配滚动
2021/05/24 HTML / CSS
死磕 java同步系列之synchronized解析
2021/06/28 Java/Android
python脚本框架webpy模板控制结构
2021/11/20 Python
MySQL视图概念以及相关应用
2022/04/19 MySQL
python中mongodb包操作数据库
2022/04/19 Python