Skip to content
Snippets Groups Projects
worker.py 1.01 KiB
Newer Older
  • Learn to ignore specific revisions
  • Georg Krause's avatar
    Georg Krause committed
    from aiohttp import ClientSession
    
    Petitminion's avatar
    Petitminion committed
    from arq import cron
    
    Georg Krause's avatar
    Georg Krause committed
    
    
    from funkwhale_network import crawler, settings
    from funkwhale_network.db import DB
    
    
    jooola's avatar
    jooola committed
    logger = logging.getLogger(__name__)
    
    
    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)
    
    jooola's avatar
    jooola committed
            except Exception as exception:
                logger.exception(f"couldn't load all information: {exception}")
    
    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
    
    Petitminion's avatar
    Petitminion committed
        cron_jobs = [cron(update_all, run_at_startup=True, hour=None, unique=True)]
    
    Petitminion's avatar
    Petitminion committed
        max_concurrent_tasks = 20
    
        shutdown_delay = 5
        timeout_seconds = 15
    
    Georg Krause's avatar
    Georg Krause committed
        redis_settings = settings.REDIS_CONFIG