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() |