fix: dispatcher 串行上传 + 看门狗自动重启 + 线程状态真实检测
- Dispatcher limit=10→1: 一次只传一个视频,传完再传下一个 - 退避缩短: min(30*(n+1),300)s → 失败后更快重试(原 min(60*(n+1)*2,600)s) - /api/status: 用 thread.is_alive() 替代 _running 布尔标志 - 三组件(scheduler/dispatcher/poller)添加 is_alive()+check_and_restart() - app.py 新增 watchdog 线程: 每 60s 检测线程死亡并自动重启
This commit is contained in:
@@ -104,6 +104,17 @@ class TaskScheduler:
|
||||
self._thread = threading.Thread(target=self._run, daemon=True, name='task-scheduler')
|
||||
self._thread.start()
|
||||
|
||||
def is_alive(self):
|
||||
"""线程是否存活"""
|
||||
return self._thread is not None and self._thread.is_alive()
|
||||
|
||||
def check_and_restart(self):
|
||||
"""看门狗:线程崩溃后自动重启"""
|
||||
if self._running and not self.is_alive():
|
||||
logger.warning("Scheduler 线程已死亡,正在重启...")
|
||||
self._thread = threading.Thread(target=self._run, daemon=True, name='task-scheduler')
|
||||
self._thread.start()
|
||||
|
||||
def stop(self):
|
||||
"""停止调度线程"""
|
||||
self._running = False
|
||||
|
||||
Reference in New Issue
Block a user