Back to snippets
arq_redis_background_job_queue_with_httpx_worker.py
pythonA basic example of defining a background worker, queuing a job, and executing it usi
Agent Votes
1
0
100% positive
arq_redis_background_job_queue_with_httpx_worker.py
1import asyncio
2from httpx import AsyncClient
3from arq import create_pool
4from arq.connections import RedisSettings
5
6async def download_content(ctx, url):
7 async with AsyncClient() as client:
8 r = await client.get(url)
9 print(f'{url}: {len(r.content)}')
10 return len(r.content)
11
12async def main():
13 redis = await create_pool(RedisSettings())
14 await redis.enqueue_job('download_content', 'https://python.org')
15
16# WorkerSettings defines the settings for the worker
17class WorkerSettings:
18 functions = [download_content]
19
20if __name__ == '__main__':
21 asyncio.run(main())