Spaces:
Sleeping
Sleeping
| from apscheduler.schedulers.background import BackgroundScheduler | |
| from apscheduler.triggers.cron import CronTrigger | |
| import logging | |
| from datetime import datetime | |
| import os | |
| from tools.arxiv_tool import save_daily_papers | |
| # Configure logging | |
| logging.basicConfig( | |
| level=logging.INFO, | |
| format='%(asctime)s - %(name)s - %(levelname)s - %(message)s', | |
| handlers=[ | |
| logging.FileHandler('arxiv_scheduler.log'), | |
| logging.StreamHandler() | |
| ] | |
| ) | |
| logger = logging.getLogger(__name__) | |
| def scheduled_paper_search(): | |
| """Run the daily paper search and log the results.""" | |
| try: | |
| logger.info("Starting daily ArXiv paper search...") | |
| papers = save_daily_papers() | |
| logger.info(f"Found {len(papers)} new AI papers today") | |
| # Log paper titles | |
| if papers: | |
| logger.info("Today's papers:") | |
| for paper in papers: | |
| logger.info(f"- {paper['title']}") | |
| except Exception as e: | |
| logger.error(f"Error in scheduled paper search: {str(e)}") | |
| def initialize_scheduler(): | |
| """Initialize and start the scheduler.""" | |
| try: | |
| scheduler = BackgroundScheduler() | |
| # Schedule the job to run at 8 AM every day | |
| scheduler.add_job( | |
| scheduled_paper_search, | |
| trigger=CronTrigger(hour=8, minute=0), | |
| id='daily_arxiv_search', | |
| name='Daily ArXiv AI Paper Search', | |
| replace_existing=True | |
| ) | |
| # Start the scheduler | |
| scheduler.start() | |
| logger.info("Scheduler initialized and started") | |
| return scheduler | |
| except Exception as e: | |
| logger.error(f"Error initializing scheduler: {str(e)}") | |
| # Return a dummy scheduler object that does nothing | |
| class DummyScheduler: | |
| def shutdown(self): pass | |
| return DummyScheduler() |