首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >芹菜工人的任务处理被延迟了

芹菜工人的任务处理被延迟了
EN

Stack Overflow用户
提问于 2019-12-23 23:10:55
回答 1查看 397关注 0票数 1

使用celery,我已经为Redis创建了监听器,用于将所有写入事件都发送到Redis。基于这些事件,我将触发芹菜任务将数据从Redis迁移到DB。我使用了并发为1000的eventlet池。另外,我有5个芹菜队列来处理我的数据。

代码语言:javascript
复制
celery -A proj worker -l info -P eventlet -c 1000 -Q event_queue,vap_queue,client_queue,group_queue,ap_queue

在这里,我面临这样的问题,监听器能够接收来自Redis的所有写事件,而工作人员能够接收来自监听器的任务。但是,芹菜工作者在处理大量数据的同时也在拖延时间。(例如,对于每个队列,我将每10秒接收800个任务)

我尝试过将并发数增加到更高的值,将池从eventlet更改为gevent,并将预取倍数设置为1,但我的工作人员仍在延迟完成任务。

有人能帮助解决这个问题吗?实际上,我对芹菜是个新手:)

EN

回答 1

Stack Overflow用户

发布于 2019-12-26 03:12:02

有时并发性并不是加速任务消耗的主要因素。当这些任务被处理时。实际上,过多的并发可能会导致许多上下文切换和减慢速度,请监控服务器CPU和内存,以检查它们是否没有被任务压垮,并找到最佳数量。对于CPU受限的任务,我建议使用更多的工作线程而不是并发线程,而对于I/O受限的任务,您可以使用并发线程

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59457494

复制
相关文章

相似问题

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