首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >[[Django Celery]] Celery被阻止执行IO任务

[[Django Celery]] Celery被阻止执行IO任务
EN

Stack Overflow用户
提问于 2012-10-18 16:51:59
回答 1查看 1.1K关注 0票数 1

我使用celery来做一些IO任务,比如抓取远程图像,向用户发送电子邮件。但芹菜有时会被挡在没有原木的地方。此时,它不会执行我发送的任何任务。我必须重新启动它,它从阻塞的地方开始工作。

它困扰了我很长一段时间。我能做些什么?使用celery分发IO任务的最佳实践是什么?

EN

回答 1

Stack Overflow用户

发布于 2014-01-13 14:07:22

默认情况下,celery worker会派生多个进程,等待来自客户端的任务请求。对于IO挂起的任务,您的系统需要大量并发处理请求。下面是命令:

代码语言:javascript
复制
    celery -A tasks worker --without-heartbeat -P threads --concurrency=10

如果同时传入请求很多,则必须将并发级别设置为高于传入请求突发的大小。系统的性能可能会受到硬件内存大小或操作系统选择API的限制。当并发很大时,您可以使用celery的线程/ gevent模型:

代码语言:javascript
复制
    celery -A tasks worker --without-heartbeat -P threads --concurrency=1000

代码语言:javascript
复制
    celery -A tasks worker --without-heartbeat -P gevent --concurrency=1000
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12950682

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档