This commit is contained in:
2025-11-17 08:02:17 +01:00
parent 4038cd5c0f
commit 49d5637294

View File

@@ -0,0 +1,89 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""
Spustí všechny PRAVIDELNÉ skripty v daném pořadí:
0) PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py
1) PRAVIDELNE_1_ReadLast300DonePozadavku.py
2) PRAVIDELNE_2_ReadPoznamky.py
3) PRAVIDELNE_3_StahniKomunikaci.py
4) PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py
5) PRAVIDELNE_5_SaveToFileSystem incremental.py
"""
import sys
import subprocess
from pathlib import Path
from datetime import datetime
# složka, kde leží tento skript i všechny PRAVIDELNE_*.py
BASE_DIR = Path(__file__).resolve().parent
SCRIPTS_IN_ORDER = [
"PRAVIDELNE_0_READ_ALL_ACTIVE_POZADAVKY.py",
"PRAVIDELNE_1_ReadLast300DonePozadavku.py",
"PRAVIDELNE_2_ReadPoznamky.py",
"PRAVIDELNE_3_StahniKomunikaci.py",
"PRAVIDELNE_4_StahniPrilohyUlozDoMySQL.py",
"PRAVIDELNE_5_SaveToFileSystem incremental.py", # má mezeru v názvu, ale v listu je to OK
]
LOG_FILE = BASE_DIR / "PRAVIDELNE_log.txt"
def log(msg: str):
"""Zapíše zprávu do log souboru i na konzoli."""
ts = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
line = f"[{ts}] {msg}"
print(line)
try:
with LOG_FILE.open("a", encoding="utf-8") as f:
f.write(line + "\n")
except Exception:
# log nesmí shodit běh
pass
def main():
log("=== START pravidelného běhu ===")
for script_name in SCRIPTS_IN_ORDER:
script_path = BASE_DIR / script_name
if not script_path.exists():
log(f"❌ Skript nenalezen: {script_path}")
continue
log(f"▶ Spouštím: {script_path.name}")
# spustíme stejným interpretem, kterým běží tento orchestr
try:
result = subprocess.run(
[sys.executable, str(script_path)],
cwd=str(BASE_DIR),
capture_output=True,
text=True,
encoding="utf-8",
errors="ignore", # NEZKAZÍ SE, NEZBOŘÍ SE, PROSTĚ IGNORUJE CP1252 NEZÁKONNÉ BYTES
)
except Exception as e:
log(f" 💥 Chyba při spouštění {script_path.name}: {e}")
continue
# vypíšeme návratový kód
log(f" ↳ return code: {result.returncode}")
# pokud něco skript vypsal na stderr, logneme
if result.stderr:
log(f" ⚠ stderr {script_path.name}:\n{result.stderr.strip()}")
# stdout můžeš podle chuti také logovat (někdy je toho moc):
# if result.stdout:
# log(f" stdout {script_path.name}:\n{result.stdout.strip()}")
log("=== KONEC pravidelného běhu ===\n")
if __name__ == "__main__":
main()