python 限制同一时间只执行一个

本文介绍了如何在Python中确保脚本在同一时间只能有一个实例在运行。通过检查PID文件并验证对应进程是否存在来实现该功能,并提供了测试步骤。
摘要由CSDN通过智能技术生成

需求

脚本可能被多个应用调用,但要求同一时间此脚本只有一个在执行。

思路

  1. 脚本执行时,先判定有没有pid文件。(pid文件是脚本执行时,生成的文件并写入其pid值)
  2. 有pid文件的同时,获取pid文件中的pid,检测进程是否存在。(防止脚本意外停止,但没有删除pid文件)。
  3. 脚本执行完后,删除pid文件。
import os
import sys
import time
import logging, logging.handlers
import psutil

logger = logging.getLogger('__main__')
formatter = logging.Formatter(
    '%(asctime)s %(filename)s %(thread)d %(thread)s [line:%(lineno)d] %(levelname)s %(message)s')
file_handler = logging.handlers.RotatingFileHandler(sys.argv[0][:-3] + '.log', maxBytes=1024 * 1024 * 10, backupCount=3)
file_handler.setFormatter(formatter)
console_handler = logging.StreamHandler(sys.stdout)
console_handler.formatter = formatter
logger.addHandler(file_handler)
logger.addHandler(console_handler)
logger.setLevel(logging.DEBUG)


def check_se
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值