Files
arsam a02709b378 Import source: main
Import the existing local project snapshot. This commit organizes existing files; it does not represent newly developed functionality.
2026-09-18 23:14:24 +03:30

44 lines
1.3 KiB
Python

import subprocess
import sys
import time
from pathlib import Path
BASE_DIR = Path(__file__).resolve().parent
telegram_file = BASE_DIR / "telebot.py"
s3_worker_file = BASE_DIR / "rub.py"
telegram_proc = None
s3_worker_proc = None
try:
s3_worker_proc = subprocess.Popen([sys.executable, str(s3_worker_file)])
telegram_proc = subprocess.Popen([sys.executable, str(telegram_file)])
print(
f"Started S3 worker pid={s3_worker_proc.pid} and Telegram worker pid={telegram_proc.pid}",
flush=True,
)
while True:
if s3_worker_proc.poll() is not None:
raise RuntimeError(f"S3 worker exited with code {s3_worker_proc.returncode}")
if telegram_proc.poll() is not None:
raise RuntimeError(f"Telegram worker exited with code {telegram_proc.returncode}")
time.sleep(1)
except KeyboardInterrupt:
pass
except RuntimeError as e:
print(e, file=sys.stderr)
finally:
for proc in [telegram_proc, s3_worker_proc]:
if proc and proc.poll() is None:
proc.terminate()
for proc in [telegram_proc, s3_worker_proc]:
if proc and proc.poll() is None:
try:
proc.wait(timeout=10)
except subprocess.TimeoutExpired:
proc.kill()