Skip to content
Snippets Groups Projects
worker.py 1006 B
Newer Older
  • Learn to ignore specific revisions
  • import logging
    import traceback
    
    
    Georg Krause's avatar
    Georg Krause committed
    from aiohttp import ClientSession
    
    Georg Krause's avatar
    Georg Krause committed
    
    
    from funkwhale_network import crawler, settings
    from funkwhale_network.db import DB
    
    
    
    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):
    
            domains = await db.get_all_domains()
            print(domains)
    
            domain = check["name"]
            print(f"Checking domain {domain}")
    
            try:
                await poll(ctx, domain)
            except Exception as e:
                print("... couldn't load all information")
                logging.error(traceback.format_exc())
    
    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