import logging from apscheduler.schedulers.blocking import BlockingScheduler from datetime import datetime import subprocess import pytz # Configure logging logging.basicConfig( level=logging.INFO, format='%(asctime)s - %(name)s - %(levelname)s - %(message)s' ) logger = logging.getLogger('scheduler_app') def update_manifest(): """Run the generate_manifest.py script to update the manifest file.""" try: logger.info("Starting manifest update") subprocess.run(["python", "/app/generate_manifest.py"], check=True) logger.info(f"Manifest updated at {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}") except Exception as e: logger.error(f"Error updating manifest: {str(e)}") if __name__ == '__main__': scheduler = BlockingScheduler(timezone=pytz.UTC) scheduler.add_job(update_manifest, 'interval', hours=1, timezone=pytz.UTC) logger.info("Scheduler started") scheduler.start()