定时调外部任务开启api
This commit is contained in:
67
start_all.py
Normal file
67
start_all.py
Normal file
@@ -0,0 +1,67 @@
|
||||
#!/usr/bin/env python3
|
||||
"""一键启动所有服务:Celery Worker + Beat + Flower"""
|
||||
import subprocess
|
||||
import sys
|
||||
import time
|
||||
import signal
|
||||
import os
|
||||
|
||||
def start_services():
|
||||
"""启动所有服务"""
|
||||
processes = []
|
||||
|
||||
try:
|
||||
print("正在启动Celery服务...")
|
||||
|
||||
# 启动Worker
|
||||
print("1. 启动Celery Worker...")
|
||||
worker_proc = subprocess.Popen([
|
||||
sys.executable, 'run_worker.py'
|
||||
], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
processes.append(('Worker', worker_proc))
|
||||
|
||||
# 等待Worker启动
|
||||
time.sleep(2)
|
||||
|
||||
# 启动Beat
|
||||
print("2. 启动Celery Beat调度器...")
|
||||
beat_proc = subprocess.Popen([
|
||||
sys.executable, 'run_beat.py'
|
||||
], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
processes.append(('Beat', beat_proc))
|
||||
|
||||
# 等待Beat启动
|
||||
time.sleep(2)
|
||||
|
||||
# 启动Flower
|
||||
print("3. 启动Flower监控服务...")
|
||||
flower_proc = subprocess.Popen([
|
||||
sys.executable, 'run_flower.py'
|
||||
], stdout=subprocess.PIPE, stderr=subprocess.STDOUT)
|
||||
processes.append(('Flower', flower_proc))
|
||||
|
||||
print("\n✅ 所有服务已启动!")
|
||||
print("🌸 Flower监控地址: http://localhost:5555")
|
||||
print("📋 查看定时任务状态和执行历史")
|
||||
print("\n按 Ctrl+C 停止所有服务")
|
||||
|
||||
# 等待中断信号
|
||||
while True:
|
||||
time.sleep(1)
|
||||
|
||||
except KeyboardInterrupt:
|
||||
print("\n正在停止所有服务...")
|
||||
for name, proc in processes:
|
||||
print(f"停止 {name}...")
|
||||
proc.terminate()
|
||||
proc.wait()
|
||||
print("所有服务已停止")
|
||||
|
||||
except Exception as e:
|
||||
print(f"启动服务时出错: {e}")
|
||||
for name, proc in processes:
|
||||
proc.terminate()
|
||||
sys.exit(1)
|
||||
|
||||
if __name__ == '__main__':
|
||||
start_services()
|
||||
Reference in New Issue
Block a user