当前位置:Gxlcms > Python > Python实现保证只能运行一个脚本实例

Python实现保证只能运行一个脚本实例

时间:2021-07-01 10:21:17 帮助过:90人阅读

保证只能运行一个脚本实例,方法是程序运行时监听一个特定端口,如果失败则说明已经有实例在跑。

使用装饰器实现,便于重用

代码如下:


import functools
def just_one_instance(func):

'''


装饰器

如果已经有实例在跑则退出

代码如下:


:return:

'''
@functools.wraps(func)
def f(*args,**kwargs):
import socket
try:
# 全局属性,否则变量会在方法退出后被销毁
global s
s = socket.socket()
host = socket.gethostname()
s.bind((host, 60123))
except:
print('already has an instance')
return None
return func(*args,**kwargs)
return f
[code]
在脚本的主函数上使用:
[code]
@just_one_instance
main():
do sth.

人气教程排行