我们日常中会用Python编一些脚本做值班任务,有时候不小心开启了两个以上的脚本,会导致任务执行冲突,我们需要用某种方法保证脚本只运行一个实例:
import socket, time, sys
import functools
#使用装饰器scoket 端口,实现脚本唯一
def ApplicationInstance(func):
@functools.wraps(func)
def fun(*args,**kwargs):
import socket
try:
global s
s = socket.socket()
host = socket.gethostname()
s.bind((host, 60123)) #一个脚本一个全局端口号,保证不重复运行
except:
input('不能重复打开已存在的程序...')
return None
return func(*args,**kwargs)
return fun
@ApplicationInstance
def main():
#do.something