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 代码性能优化技巧分享
Aug 07 Python
Python实现的二维码生成小软件
Jul 11 Python
利用Python的Flask框架来构建一个简单的数字商品支付解决方案
Mar 31 Python
Python连接PostgreSQL数据库的方法
Nov 28 Python
Python实现小数转化为百分数的格式化输出方法示例
Sep 20 Python
浅谈python中的占位符
Nov 09 Python
Python中使用支持向量机(SVM)算法
Dec 26 Python
python OpenCV学习笔记直方图反向投影的实现
Feb 07 Python
Python实现图片尺寸缩放脚本
Mar 10 Python
TensorFlow实现指数衰减学习率的方法
Feb 05 Python
tensorboard显示空白的解决
Feb 15 Python
keras.utils.to_categorical和one hot格式解析
Jul 02 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如何实现不借助IDE快速定位行数或者方法定义的文件和位置
2017/01/17 PHP
基于jQuery的简单的列表导航菜单
2011/03/02 Javascript
JS跨域代码片段
2012/08/30 Javascript
Jquery多选框互相内容交换的实例代码
2013/07/04 Javascript
javascript自动给文本url地址增加链接的方法分享
2014/01/20 Javascript
JavaScript中的函数重载深入理解
2014/08/04 Javascript
JavaScript中style.left与offsetLeft的使用及区别详解
2016/06/08 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
jquery.Jcrop结合JAVA后台实现图片裁剪上传实例
2016/11/05 Javascript
JavaScript中捕获与冒泡详解及实例
2017/02/03 Javascript
JavaScript实现动态增删表格的方法
2017/03/09 Javascript
vue路由跳转时判断用户是否登录功能的实现
2017/10/26 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
vue router 配置路由的方法
2018/07/26 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
2018/08/27 Javascript
jQuery实现基本淡入淡出效果的方法详解
2018/09/05 jQuery
「中高级前端面试」JavaScript手写代码无敌秘籍(推荐)
2019/04/08 Javascript
vue实现todolist功能、todolist组件拆分及todolist的删除功能
2019/04/11 Javascript
layui实现form表单同时提交数据和文件的代码
2019/10/25 Javascript
Vue中jsx不完全应用指南小结
2019/11/01 Javascript
python中redis的安装和使用
2016/12/04 Python
Python设计模式之观察者模式简单示例
2018/01/10 Python
使用Dajngo 通过代码添加xadmin用户和权限(组)
2020/07/03 Python
python 解决Windows平台上路径有空格的问题
2020/11/10 Python
python利用proxybroker构建爬虫免费IP代理池的实现
2021/02/21 Python
Html5之title吸顶功能
2018/06/04 HTML / CSS
Marc O’Polo俄罗斯官方在线商店:德国高端时尚品牌
2019/12/26 全球购物
幼儿园毕业教师感言
2014/02/21 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
广告宣传策划方案
2014/05/21 职场文书
工程质检员岗位职责
2015/04/08 职场文书
房屋产权证明书
2015/06/19 职场文书
大学运动会通讯稿
2015/07/18 职场文书
标准版个人借条怎么写?以及什么是借条?
2019/08/28 职场文书
fastdfs+nginx集群搭建的实现
2021/03/31 Servers
Python使用MapReduce进行简单的销售统计
2022/04/22 Python