fix: 修复启动脚本beat进程偶尔不会结束的问题

This commit is contained in:
Bai
2021-08-12 15:27:18 +08:00
committed by Jiangjie.Bai
parent cd6c7ce7fa
commit 33236aaa47
5 changed files with 68 additions and 26 deletions

View File

@@ -2,6 +2,7 @@
#
import os
import sys
import signal
import subprocess
import redis_lock
@@ -28,7 +29,24 @@ cmd = [
'--max-interval', '60'
]
with redis_lock.Lock(redis, name="beat-distribute-start-lock", expire=60, auto_renewal=True):
print("Get beat lock start to run it")
code = subprocess.call(cmd, cwd=APPS_DIR)
sys.exit(code)
processes = []
def stop_beat_process(sig, frame):
for p in processes:
os.kill(p.pid, 15)
def main():
# 父进程结束通知子进程结束
signal.signal(signal.SIGTERM, stop_beat_process)
with redis_lock.Lock(redis, name="beat-distribute-start-lock", expire=60, auto_renewal=True):
print("Get beat lock start to run it")
process = subprocess.Popen(cmd, cwd=APPS_DIR)
processes.append(process)
process.wait()
if __name__ == '__main__':
main()