MQL5-Google-Onedrive/scripts/schedule_research.py

59 lines
1.4 KiB
Python
Raw Permalink Normal View History

#!/usr/bin/env python3
"""
Schedule Research Script
Runs market research and upgrade suggestions on a schedule.
"""
import schedule
import time
import subprocess
import logging
import sys
from pathlib import Path
from dotenv import load_dotenv
# Setup logging
logging.basicConfig(level=logging.INFO, format='%(asctime)s - %(levelname)s - %(message)s')
logger = logging.getLogger(__name__)
REPO_ROOT = Path(__file__).resolve().parents[1]
def job():
logger.info("Running scheduled research task...")
# Run market research
research_script = REPO_ROOT / "scripts" / "market_research.py"
try:
subprocess.run([sys.executable, str(research_script)], check=True)
except subprocess.CalledProcessError as e:
logger.error(f"Market research failed: {e}")
return
# Run upgrade repo
upgrade_script = REPO_ROOT / "scripts" / "upgrade_repo.py"
try:
subprocess.run([sys.executable, str(upgrade_script)], check=True)
except subprocess.CalledProcessError as e:
logger.error(f"Upgrade repo failed: {e}")
return
logger.info("Scheduled task completed successfully.")
def main():
# Load env vars
load_dotenv()
logger.info("Starting Schedule Research Service...")
# Run immediately on start
job()
# Schedule every 4 hours
schedule.every(4).hours.do(job)
while True:
schedule.run_pending()
time.sleep(60)
if __name__ == "__main__":
main()