{"slug": "celery", "name": "Celery", "category": "productivity", "category_name": "Productivity", "description": "", "recommenders": 4, "commenters": 13, "warners": 1, "score": 4.701, "rising": 0.02, "first": "2025-11-03", "latest": "2026-10-07", "why": "When I need \"async\" in a http cycle flow, I use celery and run it in background.", "why_is_quote": true, "has_verdict": false, "sentiment": {"recommend": 4, "neutral": 8, "compare": 0, "warn": 1}, "spark": [2, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0], "listed": true, "loved": [], "caveat": "", "short_quote": "When I need \"async\" in a http cycle flow, I use celery and run it in background.", "icon": true, "domain": "celeryq.dev", "github_repo": null, "official_url": "https://docs.celeryq.dev", "pricing": "", "aliases": ["Celery"], "verdict": null, "praise": [{"label": "", "summary": "", "quotes": [{"id": 786973987, "item_id": 49185874, "url": "https://news.ycombinator.com/item?id=49185874", "by": "Gayithri2026", "date": "2026-08-05", "stance": "recommend", "quote": "Celery/Redis for async ingestion returning an immediate job ID", "excerpt": "Location: San Jose, CA (SF Bay Area) Remote: Yes Willing to relocate: No Technologies: Python, FastAPI, PostgreSQL/pgvector, RAG, LangChain, PydanticAI, Celery, Redis, Docker, AWS, Langfuse, Java, Spring Boot R\u00e9sum\u00e9/CV: https://github.com/Gayithri606/resume/blob/main/GayithriPonnapalli-Resume.pdf Email: gayithri@pojoai.com AI engineer building RAG chatbots and AI-driven workflow automation. Five years of production J", "context": "AI engineer building RAG chatbots", "use_case": "async ingestion", "switched_from": "", "story": "Ask HN: Who wants to be hired? (August 2026)"}, {"id": 748880240, "item_id": 46805015, "url": "https://news.ycombinator.com/item?id=46805015", "by": "linter", "date": "2026-01-28", "stance": "recommend", "quote": "I recommend [Celery](https://docs.celeryq.dev/en/stable/).", "excerpt": "I recommend [Celery](https://docs.celeryq.dev/en/stable/). Celery is a simple, flexible, and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system. BTW its free.", "context": "", "use_case": "distributed job processing in Python", "switched_from": "", "story": "Oban, the job processing framework from Elixir, has come to Python"}, {"id": 732842096, "item_id": 45802631, "url": "https://news.ycombinator.com/item?id=45802631", "by": "languagehacker", "date": "2025-11-03", "stance": "recommend", "quote": "not considering Celery as an alternative to Django + async really is the missing puzzle piece here", "excerpt": "I don't see it mentioned enough in the comments here, but not considering Celery as an alternative to Django + async really is the missing puzzle piece here. Aside from application-level options that weren't explored, I'm wondering whether handling some of the file IO stuff with, for instance, nginx, might be a better fit for their use case. Once you're in the situation of supporting a production system with some of ", "context": "", "use_case": "background task processing", "switched_from": "", "story": "Why we migrated from Python to Node.js"}, {"id": 732824929, "item_id": 45801558, "url": "https://news.ycombinator.com/item?id=45801558", "by": "Alir3z4", "date": "2025-11-03", "stance": "recommend", "quote": "When I need \"async\" in a http cycle flow, I use celery and run it in background.", "excerpt": "Async and Django don't mix well and I honestly see the whole Django Async as wasted resources, all those \"a\" prefixed functions etc. To be honest, I never liked the way async is done in python at all. However, I love Django and Python in general. When I need \"async\" in a http cycle flow, I use celery and run it in background. If client side needs to be updated about the state of the background task, the best is to se", "context": "", "use_case": "background async tasks", "switched_from": "", "story": "Why we migrated from Python to Node.js"}]}], "caveats": [{"label": "", "summary": "", "quotes": [{"id": 741264785, "item_id": 46329049, "url": "https://news.ycombinator.com/item?id=46329049", "by": "coreylane", "date": "2025-12-19", "stance": "warn", "quote": "Celery has no graceful way to cancel in-flight tasks without risking termination of the entire worker process", "excerpt": "I've also been struggling to wrap my head around durable execution hype and whether my workload would benefit, maybe after sleeping on this post it will be clear. A bit off-topic, but I recently switched from Celery to Hatchet. I haven't even fully explored everything it can do, but the change has already made me a fan. Overall simplified my stack and made several features easier to implement. Some takeaways from my ", "context": "", "use_case": "background tasks", "switched_from": "", "story": "How to think about durable execution"}]}], "who": [{"by": "curioustinkerer", "context": "Python backend engineer, 7+ years", "url": "https://news.ycombinator.com/item?id=49989699", "date": "2026-10-07"}, {"by": "emanuelecz", "context": "self-taught AI engineer", "url": "https://news.ycombinator.com/item?id=49224408", "date": "2026-08-08"}, {"by": "Gayithri2026", "context": "AI engineer building RAG chatbots", "url": "https://news.ycombinator.com/item?id=49185874", "date": "2026-08-05"}, {"by": "zayd7861", "context": "22 year old solo dev", "url": "https://news.ycombinator.com/item?id=48661295", "date": "2026-06-24"}, {"by": "storystarling", "context": "runs a print-on-demand business", "url": "https://news.ycombinator.com/item?id=46763413", "date": "2026-01-26"}], "tags": [], "use_cases": ["background tasks", "task queue", "background task processing", "order and inventory sync", "async ingestion", "task queue in django apps"], "compared": [{"slug": "redis", "name": "Redis", "co": 5, "switched_from": 0, "switched_to": 0}, {"slug": "django", "name": "Django", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "postgresql", "name": "PostgreSQL", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "fastapi", "name": "FastAPI", "co": 4, "switched_from": 0, "switched_to": 0}, {"slug": "hatchet", "name": "Hatchet", "co": 1, "switched_from": 0, "switched_to": 1}, {"slug": "gemini", "name": "Gemini", "co": 2, "switched_from": 0, "switched_to": 0}, {"slug": "pydantic", "name": "Pydantic", "co": 2, "switched_from": 0, "switched_to": 0}], "makers": [], "threads": [{"url": "https://news.ycombinator.com/item?id=49156682", "title": "Ask HN: Who wants to be hired? (August 2026)", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=45800955", "title": "Why we migrated from Python to Node.js", "mentions": 2}, {"url": "https://news.ycombinator.com/item?id=49922568", "title": "Ask HN: Who wants to be hired? (October 2026)", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48660975", "title": "Show HN: Wealtii \u2013 A multi-sig digital asset index fund built by a solo founder", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=48638886", "title": "In Praise of Memcached", "mentions": 1}, {"url": "https://news.ycombinator.com/item?id=47753245", "title": "Show HN: 15 yrs of Django in prod: patterns I keep using (agent skills)", "mentions": 1}], "sentiment_by_month": {"2025-11": {"recommend": 2, "neutral": 1}, "2025-12": {"warn": 1}, "2026-01": {"neutral": 2, "recommend": 1}, "2026-02": {}, "2026-03": {}, "2026-04": {"neutral": 1}, "2026-05": {}, "2026-06": {"neutral": 2}, "2026-07": {}, "2026-08": {"recommend": 1, "neutral": 1}, "2026-09": {}, "2026-10": {"neutral": 1}}, "quotes": [{"id": 799835187, "item_id": 49989699, "url": "https://news.ycombinator.com/item?id=49989699", "by": "curioustinkerer", "date": "2026-10-07", "stance": "neutral", "quote": "Celery at 500K tasks/hour", "excerpt": "Location: Lucknow, India Remote: Yes Willing to relocate: No Technologies: Python, Django, FastAPI, PostgreSQL, Celery, LLM APIs (Gemini, Claude), agentic workflows, embeddings/clustering, GCP, Terraform R\u00e9sum\u00e9/CV: https://drive.google.com/file/d/1pulNpC8VJnV01pCzg0QRhgqOTazTWhk7/view Email: 5ifocyqgf@relay.firefox.com GitHub: https://github.com/abhiabhi94 Python backend engineer, 7+ years. Lately building LLM system", "context": "Python backend engineer, 7+ years", "use_case": "order and inventory sync", "switched_from": "", "story": "Ask HN: Who wants to be hired? (October 2026)"}, {"id": 787590534, "item_id": 49224408, "url": "https://news.ycombinator.com/item?id=49224408", "by": "emanuelecz", "date": "2026-08-08", "stance": "neutral", "quote": "Redis, Celery, Docker", "excerpt": "Location: Gipuzkoa, Spain (CET) Remote: Yes, remote only Willing to relocate: No Technologies: Python, FastAPI, LangGraph, MCP, RAG, Postgres/pgvector, Redis, Celery, Docker, LLM evals, TypeScript, Next.js R\u00e9sum\u00e9/CV: https://www.emanuelecz.dev/emanuele-czofei-cv.pdf Email: emanuelecz06@gmail.com Self-taught AI engineer, two years building, four months at a startup. Strongest at the unglamorous half: retrieval that re", "context": "self-taught AI engineer", "use_case": "task queue", "switched_from": "", "story": "Ask HN: Who wants to be hired? (August 2026)"}, {"id": 786973987, "item_id": 49185874, "url": "https://news.ycombinator.com/item?id=49185874", "by": "Gayithri2026", "date": "2026-08-05", "stance": "recommend", "quote": "Celery/Redis for async ingestion returning an immediate job ID", "excerpt": "Location: San Jose, CA (SF Bay Area) Remote: Yes Willing to relocate: No Technologies: Python, FastAPI, PostgreSQL/pgvector, RAG, LangChain, PydanticAI, Celery, Redis, Docker, AWS, Langfuse, Java, Spring Boot R\u00e9sum\u00e9/CV: https://github.com/Gayithri606/resume/blob/main/GayithriPonnapalli-Resume.pdf Email: gayithri@pojoai.com AI engineer building RAG chatbots and AI-driven workflow automation. Five years of production J", "context": "AI engineer building RAG chatbots", "use_case": "async ingestion", "switched_from": "", "story": "Ask HN: Who wants to be hired? (August 2026)"}, {"id": 778580723, "item_id": 48661295, "url": "https://news.ycombinator.com/item?id=48661295", "by": "zayd7861", "date": "2026-06-24", "stance": "neutral", "quote": "FastAPI, React, Celery, Postgres, and Redis", "excerpt": "Hey HN, I'm a 22 year old solo dev. Over the last 8 months, I wrote 315k lines of code to build an on-chain index fund platform. The stack is FastAPI, React, Celery, Postgres, and Redis running on AWS for $70/month. The core engine works by: Aggregating up to 5,000 user orders every 30 seconds. Routing them across DEX protocols for execution. Settling into a single Gnosis Safe transaction to cut gas costs by 80%. A c", "context": "22 year old solo dev", "use_case": "task queue", "switched_from": "", "story": "Show HN: Wealtii \u2013 A multi-sig digital asset index fund built by a solo founder"}, {"id": 778303952, "item_id": 48643997, "url": "https://news.ycombinator.com/item?id=48643997", "by": "msandford", "date": "2026-06-23", "stance": "neutral", "quote": "I found celery to mostly match my expectations. I used it in a couple of django apps.", "excerpt": "Huh that's interesting! I found celery to mostly match my expectations. I used it in a couple of django apps. My only real foot gun was around having to set an EAGER setting for local development or tasks never got executed. How did you find your expectations and celery's actual semantics to be different? I'm trying to document well and it seems like I might have some implicit assumptions that I could make explicit, ", "context": "", "use_case": "task queue in Django apps", "switched_from": "", "story": "In Praise of Memcached"}, {"id": 764051940, "item_id": 47753246, "url": "https://news.ycombinator.com/item?id=47753246", "by": "vanflymen", "date": "2026-04-13", "stance": "neutral", "quote": "Reliable signals via Celery side-effects enqueued inside the DB transaction", "excerpt": "I've been building in Django for a long time and I love the framework, but some things have always bugged me: - Typing is exceptionally painful...and getting proper type safety across a Django project is a fight - the ORM leaks throughout your project: it's easy to chain ORM methods in a view, a serializer, a template tag, a Celery task, etc and N+1s end up being difficult to find - models become god objects: custom ", "context": "", "use_case": "background tasks", "switched_from": "", "story": "Show HN: 15 yrs of Django in prod: patterns I keep using (agent skills)"}, {"id": 748880240, "item_id": 46805015, "url": "https://news.ycombinator.com/item?id=46805015", "by": "linter", "date": "2026-01-28", "stance": "recommend", "quote": "I recommend [Celery](https://docs.celeryq.dev/en/stable/).", "excerpt": "I recommend [Celery](https://docs.celeryq.dev/en/stable/). Celery is a simple, flexible, and reliable distributed system to process vast amounts of messages, while providing operations with the tools required to maintain such a system. BTW its free.", "context": "", "use_case": "distributed job processing in Python", "switched_from": "", "story": "Oban, the job processing framework from Elixir, has come to Python"}, {"id": 748545123, "item_id": 46784070, "url": "https://news.ycombinator.com/item?id=46784070", "by": "robinbaertschi", "date": "2026-01-27", "stance": "neutral", "quote": "I use Celery with Redis", "excerpt": "Hi HN, I\u2019m the creator of TypoGuard. I built this specialized engine to help protect brands against typosquatting and phishing domains before they are used in active attacks. The Core Logic: Unlike basic permutation tools, TypoGuard uses a multi-factor risk scoring system (High Risk >= 8 points). The scoring is based on: Domain Metadata: Real-time WHOIS age (domains \u2264 30 days are flagged), MX record presence, and SSL", "context": "", "use_case": "async scanning tasks", "switched_from": "", "story": "Show HN: TypoGuard \u2013 A typosquatting monitoring engine with automated reporting"}, {"id": 748214609, "item_id": 46763413, "url": "https://news.ycombinator.com/item?id=46763413", "by": "storystarling", "date": "2026-01-26", "stance": "neutral", "quote": "We use Celery for the heavy lifting", "excerpt": "I built a similar internal ledger for my print-on-demand setup because the image generation costs were eating all the margin. The architecture that finally worked was treating every agent action as a transaction against a Redis counter. We use Celery for the heavy lifting, but the worker has to acquire a lock and deduct credits atomically from Redis before it can even call the external provider. If the balance hits z", "context": "runs a print-on-demand business", "use_case": "background task processing", "switched_from": "", "story": "How are people handling paid external APIs for autonomous agents?"}, {"id": 741264785, "item_id": 46329049, "url": "https://news.ycombinator.com/item?id=46329049", "by": "coreylane", "date": "2025-12-19", "stance": "warn", "quote": "Celery has no graceful way to cancel in-flight tasks without risking termination of the entire worker process", "excerpt": "I've also been struggling to wrap my head around durable execution hype and whether my workload would benefit, maybe after sleeping on this post it will be clear. A bit off-topic, but I recently switched from Celery to Hatchet. I haven't even fully explored everything it can do, but the change has already made me a fan. Overall simplified my stack and made several features easier to implement. Some takeaways from my ", "context": "", "use_case": "background tasks", "switched_from": "", "story": "How to think about durable execution"}, {"id": 737402257, "item_id": 46087641, "url": "https://news.ycombinator.com/item?id=46087641", "by": "delbronski", "date": "2025-11-29", "stance": "neutral", "quote": "I\u2019ve tried Celery/Procrastinate/Chancy and others in the past. Nothing has really felt \u201cright.\u201d", "excerpt": "I\u2019ve tried Celery/Procrastinate/Chancy and others in the past. Nothing has really felt \u201cright.\u201d So I always end up using GCPs cloud task jobs and scheduling. It\u2019s just so simple for small to mid size projects. Really want to give this a try though.", "context": "", "use_case": "background tasks", "switched_from": "", "story": "A first look at Django's new background tasks"}, {"id": 732842096, "item_id": 45802631, "url": "https://news.ycombinator.com/item?id=45802631", "by": "languagehacker", "date": "2025-11-03", "stance": "recommend", "quote": "not considering Celery as an alternative to Django + async really is the missing puzzle piece here", "excerpt": "I don't see it mentioned enough in the comments here, but not considering Celery as an alternative to Django + async really is the missing puzzle piece here. Aside from application-level options that weren't explored, I'm wondering whether handling some of the file IO stuff with, for instance, nginx, might be a better fit for their use case. Once you're in the situation of supporting a production system with some of ", "context": "", "use_case": "background task processing", "switched_from": "", "story": "Why we migrated from Python to Node.js"}, {"id": 732824929, "item_id": 45801558, "url": "https://news.ycombinator.com/item?id=45801558", "by": "Alir3z4", "date": "2025-11-03", "stance": "recommend", "quote": "When I need \"async\" in a http cycle flow, I use celery and run it in background.", "excerpt": "Async and Django don't mix well and I honestly see the whole Django Async as wasted resources, all those \"a\" prefixed functions etc. To be honest, I never liked the way async is done in python at all. However, I love Django and Python in general. When I need \"async\" in a http cycle flow, I use celery and run it in background. If client side needs to be updated about the state of the background task, the best is to se", "context": "", "use_case": "background async tasks", "switched_from": "", "story": "Why we migrated from Python to Node.js"}]}