File size: 1,432 Bytes
bb410e4
 
c5085aa
 
bb410e4
c5085aa
 
bb410e4
c5085aa
 
 
 
bb410e4
 
 
 
 
 
 
 
 
c5085aa
bb410e4
 
 
c5085aa
 
 
 
bb410e4
c5085aa
bb410e4
c5085aa
 
 
 
 
 
 
 
 
 
bb410e4
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# agents/check_agents.py

import os
import sys
from datetime import datetime, UTC

sys.path.append(os.path.abspath(os.path.join(os.path.dirname(__file__), '..')))

from tools.storage import Storage

storage = Storage()

def print_config():
    print("⚙️ Конфигурация:")
    rows = storage.conn.execute("SELECT key, value FROM config").fetchall()
    if not rows:
        print(" • (таблица config пуста)")
    for key, value in rows:
        print(f" • {key:20} = {value}")
    print()

def check_all_processes():
    print_config()
    print(f"🗄️ Путь к базе данных: {storage.db_path}\n")

    processes = storage.conn.execute("SELECT name, heartbeat FROM main_process").fetchall()
    if not processes:
        print("⛔ В базе нет активных процессов.")
        return

    print("📋 Статус процессов:")
    now = datetime.now(UTC)
    for name, heartbeat in processes:
        try:
            hb_time = datetime.fromisoformat(heartbeat)
            delta = (now - hb_time).total_seconds()
            status = "🟢 Активен" if delta < 180 else "🔴 Не отвечает"
            print(f" • {name:20}{status} (обновлён {int(delta)} сек. назад)")
        except Exception as e:
            print(f" • {name:20} — ⚠️ Ошибка: {e}")

if __name__ == "__main__":
    check_all_processes()