Skip to content
Snippets Groups Projects
worker.py 769 B
Newer Older
  • Learn to ignore specific revisions
  • from funkwhale_network import crawler
    
    from funkwhale_network.db import DB
    
    from funkwhale_network import settings
    
    Georg Krause's avatar
    Georg Krause committed
    from aiohttp import ClientSession
    
    Georg Krause's avatar
    Georg Krause committed
    
    async def poll(ctx, domain):
    
        session: ClientSession = ctx["session"]
    
    Georg Krause's avatar
    Georg Krause committed
        return await crawler.check(session=session, domain=domain)
    
    Georg Krause's avatar
    Georg Krause committed
    
    
    Georg Krause's avatar
    Georg Krause committed
    async def update_all(ctx):
    
        async with DB() as db:
            domains = await db.get_latest_check_by_domain()
        for check in domains:
    
    Georg Krause's avatar
    Georg Krause committed
            await poll(ctx, check["domain"])
    
    Georg Krause's avatar
    Georg Krause committed
    async def startup(ctx):
        ctx["session"] = ClientSession()
    
    Georg Krause's avatar
    Georg Krause committed
    class WorkerSettings:
    
    Georg Krause's avatar
    Georg Krause committed
        on_startup = startup
    
        cron_jobs = [cron(update_all, minute=None)]
    
        max_concurrent_tasks = 20
        shutdown_delay = 5
        timeout_seconds = 15
    
    Georg Krause's avatar
    Georg Krause committed
        redis_settings = settings.REDIS_CONFIG