diff --git a/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py b/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py index e69de29..f5b9ff0 100644 --- a/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py +++ b/10ReadPozadavky/PRAVIDELNE_PLNYSCRIPT.py @@ -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()